代码之家  ›  专栏  ›  技术社区  ›  Soonts

如何绑定到任何可用端口?

  •  41
  • Soonts  · 技术社区  · 17 年前

    硬编码UDP端口号是个坏主意,因为它可能会被运行在同一台PC上的任何其他应用程序使用。

    有没有办法将UDP套接字绑定到任何可用端口?在我看来,这应该是快速获取自由端口#的有效方法,例如accept()函数使用自由端口。

    如果没有,那么尝试绑定并检查WSAEADDRINUSE/EADDRINUSE状态的最佳策略是什么:从1025或1025+rand()或其他开始依次尝试端口?

    3 回复  |  直到 10 年前
        1
  •  250
  •   Remy Lebeau    10 年前

    另一个选项是将端口0指定为 bind() . 这将允许您绑定到特定的IP地址(如果您有 倍数 getsockname() 在执行绑定之后。

        2
  •  43
  •   avakar    17 年前

    呼叫 sendto 不打电话 bind 首先,套接字将自动绑定(到空闲端口)。

        3
  •  -1
  •   Jonke    17 年前

    从sendto开始,然后使用recvfrom函数读取传入数据,您还可以从中获得发送数据的地址作为奖励,在那里您可以发送回响应。

    推荐文章