好的,我正在使用一个客户端/服务器库。服务器可以接受来自客户端的多个连接。每次调用 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。
我们在创建网络库时解决了类似的问题网络通讯网 http://www.networkcomms.net。我们的解决方案是通过 IPEndPoint 跟踪对等点(MSDN http://msdn.microsoft.com/en-gb/library/system.net.ipendpoint.aspx), 指导 (MSDN http://msdn.microsoft.com/en-us/library/cey1zx63.aspx)和连接类型,例如TCP、UDP 等。Guid 在高级连接握手期间交换,以便两端都知道对方。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)