rm1.ClientSocket1Connect(Sender:TObject;Socket:TCustomWinSocket);
begin
b_Client:=ture;
StatusBar1.SimpleText:=''连接成功'';
end;
4.ServerSocket和ClientSocket之间的数据传输
聊天的内容是通过Edit控件输入并在敲回车键后显示在Memo控件中,再传输到与之连接的
计算机中。
Edit的OnKeyDown事件代码如下:
procedure TForm1.Edit1KeyDown(Sender:TObject;var Key:Word;Shift:TShiftState);
begin
if Key=VK_Return then
begin
Memo1.Lines.Add(NickName+'':''+Edit1.Text0;
if b_Client then
ClientSocket1.Socket.SendText(Memo1.Lines[Memo1.lines.Count-1])
else
ServerSocket1.Socket.Connections[0].SendText(Memo1.Lines[Memo1.lines.Count-1]);
end;
end;
在ServerSocket控件的onread事件中编写服务器接收到数据后的动作,代码如下:
procedure TForm1.ServerSocket1ClientRead(Sender:TObject;Socket:TCustomWinSocket);
begin
Memo1.lines.Add(Socket.ReceiveText);
end;
在ClientSocket控件的onread事件中编写客户端接收到数据后的动作,代码如下:
procedure TForm1.ClientSocket1Read(Sender:TObject;Socket:TCustomWinSocket);
begin
Memo1.lines.Add(Socket.ReceiveText);
end;
5.断开Serversocket和ClientSocket之间的连接
双击ToolButton3,编写客户端断开的处理过程,代码如下:
procedure TForm1.ToolButton3Click(Sender:TObject);
begin
ClientSocket1.close;
StatusBar1.SimpleText:=''断开连接'';
end;
编写服务器响应客户端断开的处理过程,代码如下:
procedure TForm1.ServerSocket1ClientDisconnect(Sender:TObject;Socket:TCustomWinSocket);
begin
SeverSocket1.close;
StatusBar1.SimpleText:=''断开连接'';
end;
6.更改聊天者的昵称
双击Toolbutton4,编写更改昵称代码如下:
procedure TForm1.ToolButton4Click(sender:TObject);
var
s:string;
begin
if InputQuery(''更改昵称'',''你的新昵称'',s) then
if Length(s)>0 then
NickName:=s;
end;
7.退出应用
程序 双击Toolbutton5,编写退出应用
程序代码如下:
procedure TForm1.ToolButton5Click(sender:TObject);
ClientSocket1.close;
ServerSocket1.close;
Form1.close;
end;
8.保存并运行应用
程序 最好在网上运行该
程序,如果没联网,但你的
计算机支持TCP/IP协议(可以通过网络邻居安装TCP/IP协议),
你可以在你的
计算机上从“我的电脑”中运行该应用程序的两个实例。运行后,将一个聊天
程序作为服务器监
听,另一个聊天程序作为客户与服务器连接并聊天。局域网中同样可以运行!!!