多人聊天系统 C++Builder 6

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用户说明书

服务器程序图标

服务器窗口界面

监听:点击监听即开启服务器,监听各个用户登陆情况;断开:即断开服务器,在有用户在线时,会提示确认信息;

禁止用户:断开某些用户的连接;

内容框:显示连接用户的IP 和用户名;

发送信息窗口:用来对所有在线用户发送信息或者对个别用户发送信息;

状态栏:分别显示用户连接数量、连接状态和目前时间。

用户客户端程序图标

用户窗口界面

主机:设置服务器IP的地址;

登陆:可以自设用户名登陆或者匿名登陆服务器;

离开:断开与服务器的连接;

接受消息窗口:显示服务器端和客户端发送的信息;

发送窗口:发送信息内容;

在线用户列表:显示在线的用户昵称,选中可进行私聊对话;

状态栏:分别显示本机IP地址,本机登陆状态和目前时间。

附录:

1、服务器代码

//---------------------------------------------------------------------------

#include

#pragma hdrstop

#include "ChatServer.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

int Num=0;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

ServerSocket1->Port=1500;

ServerSocket1->Active=true;

m_iClientNum=0;

m_sIsName="NA";

m_sIsChat="CT";

m_sPart="#";

m_sIsCommand="CO";

m_sTo="ALL";

MenuListen->Enabled=false;

MenuClose->Enabled=true;

Application->OnException=AppException;

TDateTime NowTime;

NowTime=Now();

StatusBar1->Panels->Items[2]->Text=NowTime.DateTimeString();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ServerSocket1Accept(TObject *Sender,

TCustomWinSocket *Socket)

{

AnsiString sClientNum;

m_iClientNum++;

sClientNum.sprintf("有%d台客户连接",m_iClientNum);

//Num=m_iClientNum;

StatusBar1->Panels->Items[1]->Text="连接成功!";

StatusBar1->Panels->Items[0]->Text=sClientNum;

ListUserAddr->Items->Add(Socket->RemoteAddress);

for(int i=0;iSocket->ActiveConnections;i++)

ServerSocket1->Socket->Connections[i]->SendText("CLEAR");

Sleep(100);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket)

{

AnsiString sTemp;

AnsiString sPre;

AnsiString sWelcome;

sTemp=Socket->ReceiveText();

sPre=sTemp.SubString(1,2);

if(sPre==m_sIsName)

{

AnsiString sName;

sName=sTemp.SubString(3,sTemp.Length()-2);

ListUserName->Items->Add(sName);

for(int i=0;iSocket->ActiveConnections;i++)

{

for(int j=0;jItems->Count;j++)

{

AnsiString sName;

sName=ListUserName->Items->Strings[j];

ServerSocket1->Socket->Connections[i]->SendText(sName);

相关文档
最新文档