如何从服务器中的客户端池中识别客户端 – 设计

好的,我有一个我正在工作的客户端/服务器库。 服务器可以接受来自客户端的多个连接。 在每次调用Accept()时,如果成功,客户端套接字的句柄将被推送到地图,并将假定的唯一ID作为键。 因此,当服务器稍后想要向特定客户端发送消息时,它将使用此ID找到客户端。

我的问题:每个客户的唯一ID是什么? IP地址不可用,因为多个客户端可以来自同一IP地址。 如果没有,任何人都可以建议一些其他好的设计。 谢谢

插图:

ClientSocket workerSock = Server.Accept(); Map.Add(workerSock); Map ____________________ |Key | Value | |------------------| | ? |workerSock1| ------------------------ client application 1 |------------------| | ? |workerSock2| ------------------------ client application 2 |------------------| | ? |workerSock3| ------------------------ client application 3 -------------------- 

场景:服务器想要发送到特定客户端,因此它必须具有一些ID。

我们在创建网络库networkComms.net时解决了类似的问题。 我们的解决方案是通过IPEndPoint( MSDN ),Guid( MSDN )和连接类型(例如TCP,UDP等)跟踪对等体。在高级连接握手期间交换Guid,以便两端都知道另一端。

也许, workerSock.GetHashCode()会做什么?