我需要一个将 UDP 数据包发送到某个网络服务器并接收响应的应用程序。服务器回复请求所在的相同端口号,因此我首先需要将我的套接字绑定()到任何 UDP 端口号。
对 UDP 端口号进行硬编码是一个坏主意,因为它可能会被同一台 PC 上运行的任何其他应用程序使用。
有没有办法将 UDP 套接字绑定到任何可用端口? IMO 它应该是快速获得自由端口 # 的有效方法,例如可以使用该端口。接受()函数。
如果不是,那么尝试绑定并检查 WSAEADDRINUSE/EADDRINUSE 状态的最佳策略是什么:从 1025、或 1025+rand() 或其他端口开始按顺序尝试端口?
另一种选择是将端口 0 指定为bind()
。这将允许您绑定到特定的 IP 地址(如果您有multiple安装),同时仍然绑定到随机端口。如果您需要知道选择了哪个端口,可以使用getsockname()
执行绑定后。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)