Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#插槽-识别同一台计算机_C#_Sockets - Fatal编程技术网

C#插槽-识别同一台计算机

C#插槽-识别同一台计算机,c#,sockets,C#,Sockets,我正在做一个软件,其中包括Udp和Tcp套接字服务器客户端。我希望只有当客户端连接到TCP服务器时,Udp才会响应它。我知道如何做到这一点,但我有一个问题-如果有人在同一个局域网上使用两台不同的计算机,外部IP将是相同的,因此我在检查tcp/udp连接时会遇到问题。 所以我首先想到,当客户端连接到我的服务器时,他会发送他的内部IP,我会用它来检查它是否真的是一台或多台计算机 但我不知道是否有更简单的方法,因为这是一个相当复杂的方法。有什么想法吗?为每个连接分配一个ID,并使UDP数据包包含该ID

我正在做一个软件,其中包括Udp和Tcp套接字服务器客户端。我希望只有当客户端连接到TCP服务器时,Udp才会响应它。我知道如何做到这一点,但我有一个问题-如果有人在同一个局域网上使用两台不同的计算机,外部IP将是相同的,因此我在检查tcp/udp连接时会遇到问题。 所以我首先想到,当客户端连接到我的服务器时,他会发送他的内部IP,我会用它来检查它是否真的是一台或多台计算机


但我不知道是否有更简单的方法,因为这是一个相当复杂的方法。有什么想法吗?

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


内部IP没有很好的定义。一台计算机可以有几十台。

无需“发送内部IP”。对于TCP连接,这是由NAT完成的。两个连接到同一个外部IP,但NAT记得一个连接到内部IP“A”,另一个连接到“B”。很好,我不知道,好帖子。如果你还需要通过NAT的UDP连接,那么搜索@i486谢谢:)但是在我的检查中,我将检查外部地址,看看它们是否是来自同一网络的多个连接,我需要比较TCP ip和UDP ip,看看是否有匹配,如果是,udp服务器将处理该用户,因为该用户已连接到TCP。所以我需要以某种方式更改为检查?为每个连接分配一个ID,并使UDP数据包包含该ID。匹配ID,而不是“内部IP”。内部IP没有很好的定义。一台计算机可以有几十台。