C#套接字 - 如何识别同一台计算机

3
我正在开发一个包含Udp和Tcp套接字服务器-客户端的软件。我希望只有当客户端连接到TCP服务器时,UDP才会响应它。我知道如何做到这一点,但是我有一个问题 - 如果有人在同一局域网上使用两台不同的计算机,则外部IP地址将相同,因此我将无法检查tcp/udp连接。
所以我想到了一个方法:当客户端连接到我的服务器时,它将发送它的内部IP地址,然后我将使用它来检查是否真的只有一台计算机。
但我不知道是否还有更简单的方法,因为这个方法相当复杂。你有什么好的建议吗?

如果您需要通过NAT建立UDP连接,则可以搜索“UDP打洞”(UDP hole punching)。 - Oliver
@i486 谢谢 :) 但是在我的检查中,我将检查外部地址以查看是否有来自同一网络的多个连接,我需要比较TCP IP和UDP IP并查看是否匹配,如果匹配,则UDP服务器将处理用户,因为他已连接到TCP。所以...我需要以某种方式更改检查吗? - Sword Art
但连接不仅仅是IP...你有不同的端口,对吧? - Sagiv b.g
3
为每个连接分配一个ID,并使UDP数据包包含该ID。匹配时要根据ID而不是“内部IP”。“内部IP”没有明确定义,一台电脑可能有数十个。 - usr
太棒了!非常感谢你! :) - Sword Art
显示剩余3条评论
1个回答

2

为每个连接分配一个ID,并使UDP数据包包含该ID。匹配ID,而不是“内部IP”。

“内部IP”没有明确的定义。一台计算机可以有数十个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接