我有一個偵聽端口的小型TCP服務器。在調試時,我通常會按CTRL-C服務器來終止進程。「使用中的地址」與Windows和Linux上的bind()之間的區別 - errno = 98
在Windows上,我可以快速重啓服務,套接字可以被反彈。在Linux上我有綁定之前等待幾分鐘()成功
返回當bind()的失敗則返回錯誤號= 98,地址在使用中。
我想更好地理解實現中的差異。 Windows確實對開發人員更友好,但我懷疑Linux是在做'錯誤的事情'。
我最好的猜測是Linux的等待,直到所有可能的客戶已經檢測到舊插座允許創建新的套接字之前打破。它可以做到這一點的唯一方法就是等待他們超時
有沒有辦法在Linux開發過程中改變這種行爲?我希望能複製的Windows做到這一點
嘿感謝一堆,不知道尋找SO_REUSEADDR。現在我的信息很豐富。謝謝! – stuck 2011-02-12 18:08:26