我需要一個將UDP數據包發送到某個網絡服務器並接收響應的應用程序。服務器回覆相同的請求來自的端口號,所以我首先需要綁定()我的套接字到任何UDP端口號。如何綁定到任何可用的端口?
硬編碼的UDP端口號是一個壞主意,因爲它可能是由同一臺PC上運行的任何其他應用程序使用。
是否有可用的綁定的UDP套接字任何端口的方法是什麼? IMO應該是快速獲得空閒端口#的有效方式,該空閒端口被例如accept()函數。
如果不是,那麼嘗試綁定並檢查WSAEADDRINUSE/EADDRINUSE狀態的最佳策略是:從1025或1025 + rand()或其他某個端口順序嘗試端口?
accept()用於基於連接的套接字,而不是數據報套接字。 – Beano
也許這將有助於:http://serverfault.com/questions/447044 – yegor256
在POSIX?還要求範圍1024+:http://stackoverflow.com/questions/913501/how-to-let-kernel-choose-a-port-number-in-the-range-1024-5000-in-tcp-socket- pr –