是这样的,客户端和服务器之间的连接正常,,但是2个客户端通信的话,例如,互发信息.. 在2个客户端聊天窗口都打开后.其中任何一方向对方发出信息,然后系统提示你2个客户端没有连接上.此时如果去另一个客户端上向对方发信息,则成功,没有任何问题.此时程序运行正常...随便怎么发都行.,..这个问题很奇怪,请高手帮我看看procedure TFormChat.ButtonSendClick(Sender: TObject);//发送信息
var
i:integer;
begin
TcpServer1.LocalPort:='8080';
TcpServer1.Active:=True; TcpClient1.RemoteHost:='192.168.1.100';
TcpClient1.RemotePort:='8080';
try
if TcpClient1.Connect then
begin
showmessage(BoolToStr(self.TcpClient1.Connected));
ShowMessage('我已经和朋友连接上了');
Tcpclient1.Sendln(edit1.Text);
memo1.Lines.Add('remote host:'+self.IdIPWatch1.LocalName+'('+self.IdIPWatch1.LocalIP+')');
memo1.Lines.Add(edit1.Text);
memo1.Lines.Clear;
end
else ShowMessage('我已经和朋友连接上了1111111');
finally
tcpclient1.Disconnect;
end;
end;procedure TFormChat.TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient);//接收信息
var
info:String;
TThread:TClientThread;
begin
TThread:=TclientThread.Create(true);
TThread.Targetlist:=Self.Memo1.Lines;
TThread.ListBuffer.Add('Remote Host:'+clientsocket.LookupHostName(clientsocket.RemoteHost)+'('+clientsocket.RemoteHost+')');
info:=clientsocket.Receiveln;
while info<>'' do
begin
TThread.ListBuffer.Add(info);
info:=clientsocket.Receiveln;
end;
TThread.ListBuffer.Add(#13#10);
memo1.Lines.AddStrings(TThread.ListBuffer);
TThread.Resume;
end;请高手帮我看看
var
i:integer;
begin
TcpServer1.LocalPort:='8080';
TcpServer1.Active:=True; TcpClient1.RemoteHost:='192.168.1.100';
TcpClient1.RemotePort:='8080';
try
if TcpClient1.Connect then
begin
showmessage(BoolToStr(self.TcpClient1.Connected));
ShowMessage('我已经和朋友连接上了');
Tcpclient1.Sendln(edit1.Text);
memo1.Lines.Add('remote host:'+self.IdIPWatch1.LocalName+'('+self.IdIPWatch1.LocalIP+')');
memo1.Lines.Add(edit1.Text);
memo1.Lines.Clear;
end
else ShowMessage('我已经和朋友连接上了1111111');
finally
tcpclient1.Disconnect;
end;
end;procedure TFormChat.TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient);//接收信息
var
info:String;
TThread:TClientThread;
begin
TThread:=TclientThread.Create(true);
TThread.Targetlist:=Self.Memo1.Lines;
TThread.ListBuffer.Add('Remote Host:'+clientsocket.LookupHostName(clientsocket.RemoteHost)+'('+clientsocket.RemoteHost+')');
info:=clientsocket.Receiveln;
while info<>'' do
begin
TThread.ListBuffer.Add(info);
info:=clientsocket.Receiveln;
end;
TThread.ListBuffer.Add(#13#10);
memo1.Lines.AddStrings(TThread.ListBuffer);
TThread.Resume;
end;请高手帮我看看
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货