【问题标题】:If a client Udp port punches to a server on one port, can I assume it will send from same port if it sends to a different port on the server?如果客户端 Udp 端口​​在一个端口上连接到服务器,如果它发送到服务器上的不同端口,我可以假设它会从同一个端口发送吗?
【发布时间】:2014-07-08 22:23:02
【问题描述】:

很难解释,所以这里是一步一步的:

  1. 客户端通过 Udp 向服务器发送数据。客户端端口 X 到服务器端口 3000。
  2. 服务器使用此通信设置 UdpClient 以在端口 3001 上侦听此特定客户端的客户端端口 X。
  3. 然后客户端根据需要在本地端口 X 上将数据发送到服务器端口 3001。
  4. 大家都很开心。

我的问题是:我是否可以假设,如果客户端正在与 NAT 后面的服务器通信并且它是 punches a udp port,那么如果它与同一服务器上的另一个端口通信,它将使用相同的端口?

[编辑:格式化]

【问题讨论】:

  • 以上步骤打孔在哪里?
  • 第一步。当客户端发送 Udp 数据并打开 X 端口时。

标签: c# multithreading sockets networking udp


【解决方案1】:

不,你不能假设。它可能会发生也可能不会发生,这取决于客户端正在穿透的 NAT 防火墙软件的编写者。

复杂的软件可能会检测到您正在与同一台服务器通信,但使用不同的端口并重用出站端口,但更简单的软件(您经常在家用路由器上看到的那种)可能会“笨拙”并且只需使用新的每个连接的随机端口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-14
    • 2011-10-14
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 2016-12-23
    相关资源
    最近更新 更多