⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.cpp

📁 本人自己做的一个c++builder聊天工具,由一个服务端ServerClient和客户端ClientSocket
💻 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 + -