读书人

本人刚学indy TCP Server疑惑一个有

发布时间: 2012-02-20 21:18:23 作者: rapoo

本人刚学indy TCP Server,疑惑一个问题:Server能判断是哪个IP发的数据吗?
本人刚学indy TCP Server,疑惑一个问题:Server能判断是哪个IP发的数据吗?
比如a,b,c三台client给Server发信息,如果是a,就回复奖励100,是b,就奖励200,c就不回复。
Server能判断是那台client吗?是不是a,b,c给Server发数据必须包含自己的身份信息,让Server解析后判断?

[解决办法]
不需要的,TCPServer为每一个客户端连接单独建立了一个线程。
[解决办法]
TCPSERVER 可以取出每个客户端的IP。
[解决办法]
PeerIP就是对方的IP地址,绑定IP地址会有问题,因为现在都用DHCP,IP地址有可能会变,最好在协议中定身份信息。
[解决办法]

Delphi(Pascal) code
procedure Send(AThread: TIdTCPClient; str: string);beginif form1.IdTCPClient1.Connected then beginAThread.WriteLn(str);end;//A机Send(AThread,'a');procedure TForm2.IdTCPServer1Execute(AThread: TIdPeerThread);var  str: string;begin  try    str := AThread.Connection.Readln();  except end;  //  if str = ‘a’ then begin  AThread.Connection.Writeln('100');  end;if str = ‘b’ then begin  AThread.Connection.Writeln('200');  end;if str = ‘c’ then begin  //  end;end;
[解决办法]
如果a,bc都是固定IP可以通过peerip如果不是则需要发送身份信息
[解决办法]
AContext.Connection.IOHandler.Readln

读书人网 >.NET

热点推荐