我需要一个应用程序来向某个网络服务器发送UDP数据包并接收响应。服务器将回复到与请求相同的端口号,因此我首先需要将我的套接字绑定(bind)到任何UDP端口号。
硬编码UDP端口号是不好的想法,因为它可能被运行在同一台电脑上的其他应用程序使用。
有没有办法将UDP套接字绑定到任何可用端口?在我看来,这应该是一种快速获取空闲端口号的有效方法,例如由accept()函数使用的端口号。
如果不能,那么最好的策略是尝试顺序绑定并检查WSAEADDRINUSE / EADDRINUSE状态:从1025开始顺序尝试端口、或者从1025+rand()开始随机尝试端口号,还是其他策略?