异步套接字 - 标识唯一连接
本文关键字:唯一 连接 标识 套接字 异步 | 更新日期: 2023-09-27 18:36:53
我有一个接受来自多个客户端的异步套接字连接的服务器。 现在,我正在根据他们传入的IP地址和端口为他们分配一个服务器端唯一ID。 我担心的是 - 如果 2 个客户端从相同的 IP 和 NAT 后面连接怎么办。 有没有更好的方法来确定这一点?
private static int DetermineSocketToConnectionID(Socket handler)
{
int connectionIDForHandler = 0;
string uniqueIPString = handler.RemoteEndPoint.ToString();
if (Client1Buffers.UserIPAddress == uniqueIPString)
{
connectionIDForHandler = 1;
}
if (Client2Buffers.UserIPAddress == uniqueIPString)
{
connectionIDForHandler = 2;
}
return connectionIDForHandler;
}
最好让这些客户端在第一次连接时向服务器进行身份验证,并向您传递一些可用于识别它们的内容,而不是信任网络信息。这正是创建会话和 cookie 以将客户端登录到 Web 服务器的原因。您可以通过与客户端握手并将它们传回一个 uid 来执行类似操作,然后它们需要在每次后续连接时将其传递回服务器。