当不同的套接字绑定到同一端口

时间:2018-02-14 08:49:36

标签: udp port nat

SO post中遇到一个有趣的观察,其中有两个客户端进程(客户端跨NAT),它们都本地绑定到同一个端口(重用端口),使用UDP套接字在一个进程中发送数据,并在另一个接收。 事实证明,接收过程无法接收数据。

客户端流程(发送)---端口5000 ---> NAT --Port 5333(比如说) - >服务器

这可行

服务器----端口(5333)---> NAT ---端口?? --->客户流程(Recv)

这不起作用

似乎如果将具有相同套接字的单个客户端进程用于发送和接收,它将从服务器接收数据。

为什么会这样?如果客户端发送和接收进程都绑定到同一个端口,那么事情应该有效吗?

为什么不同的进程会导致此行为?看起来由于不同的进程,尽管端口重用,仍然使用不同的端口?

0 个答案:

没有答案