2010-03-24 104 views
1

我需要从ServerSocket获取连接ID。客户端发送文本,我需要知道哪些客户端发送文本。有任何想法吗??从ServerSocket获取连接ID

+3

请详细说明。目前还不清楚你在找什么。套接字没有ID。除了连接的IP /端口对之外,您必须手动跟踪任何其他识别信息。 – 2010-03-27 01:19:46

回答

0

我在想,他是指插座的手柄

procedure TForm1.srvrsckt1ClientConnect(Sender: TObject; 
    Socket: TCustomWinSocket); 
    var connectedClientSockHandle : Integer; 
begin 
    connectedClientSockHandle := socket.Handle; 
end; 
0

我认为你应该做的是让每个新的连接(在onaccept功能)分配一个唯一的ID(随机字母/数字),那么从客户端 - >服务器发送的每个命令将包含该客户端的唯一ID。

1
procedure Tf_serveur.ServerSocket1ClientRead(Sender: TObject; 
    Socket: TCustomWinSocket); 
begin 
    Memo1.Lines.Add(Socket.RemoteAddress+'\>'+Socket.ReceiveText);`` 
    // Socket.RemoteAddress is the client ip 
    // Socket.RemoteHost  is the client nameposte 
    // Socket.receivetext is the client text sinding 
end; 
+1

感谢您的贡献,但是您能否为您的答案添加一些解释? – honk 2014-11-19 20:24:16

+1

什么是不清楚的呢?有ServerSocket事件,它们告诉你每次哪个客户端套接字触发事件,并且这些套接字可以告诉你本地和远程IP:端口对的连接。此代码记录远程(客户端)IP并将文本发送到“TMemo”组件。如果你想要一些更有意义的东西,比如用户名,那么你必须自己实现,比如让客户端在连接时发送它的用户名,并且存储在需要的地方,比如在'TCustomWinSocket中。数据属性。 – 2014-11-19 21:25:17