📄 unit1.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "SUISkinEngine"
#pragma resource "*.dfm"
TForm1 *Form1;
AnsiString GetLocalHostIP();
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
m_sHostAddress=GetLocalHostIP();
ClientSocket1->Active=true;
ClientSocket1->Address=m_sHostAddress;
ClientSocket1->Port=50;
m_sIsName="NA";
m_sIsChat="CT";
m_sSpeakTo="ALL";
m_sPart="#";
m_HasConnected=false;
TDateTime NowTime;
NowTime=Now();
Bar->Panels->Items[1]->Text=NowTime.DateTimeString();
}
//---------------------------------------------------------------------------
AnsiString GetLocalHostIP()
{
hostent *p;
char s[128];
gethostname(s,128);//获取指定计算机的名字
p=gethostbyname(s);
AnsiString HostIP=inet_ntoa(*((in_addr *)p->h_addr)); //获取指定计算机的IP地址
if(p!=NULL)
delete p;
p=NULL;
return HostIP;
}
//-----------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ShowMessage(m_sHostAddress);
Label1->Caption="欢迎登录YYB聊天区";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Connecting(TObject *Sender,
TCustomWinSocket *Socket)
{
Bar->Panels->Items[0]->Text="正在连接的.....";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
TCustomWinSocket *Socket)
{
Socket->SendText(m_sIsName+m_sName);
String sTemp;
sTemp.sprintf("%s登录成功!",m_sName);
ShowMessage(sTemp);
Bar->Panels->Items[0]->Text=sTemp;
//Label->
m_HasConnected=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
InputQuery("请输入你的用户名","用户名:",m_sName);
if(m_sName.IsEmpty())
{
ShowMessage("你将使用默认名--YYB登录");
m_sName="YYB";
}
if(ClientSocket1->Active==false)ClientSocket1->Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
TCustomWinSocket *Socket)
{
String sInfo,sType,sChat;
sInfo=Socket->ReceiveText();
sType=sInfo.SubString(1,2);
if(sInfo==String("CLEAR"))
ListUser->Items->Clear();
else
{
if(sType!=m_sIsChat)
{
if(sInfo!=m_sName)Label1->Caption="新朋友来了!";
ListUser->Items->Add(sInfo);
}
else
{
sChat=sInfo.SubString(4,sInfo.Length()-3);
ShowMessage(sChat);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Error(TObject *Sender,
TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
ErrorCode=0;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -