我遇到了來自boost :: asio的奇怪錯誤的問題。我正在實現一半的TFTP服務器(僅限服務器 - >客戶端)。我在第一個套接字上的端口69上獲得第一個RRQ數據包,然後創建另一個套接字來執行DATA,ACK交換。我在該套接字上啓動一個async_receive(),然後執行第一個數據包的send()。然後我得到接收器的處理函數回調函數(我假設ACK進來了),它給出錯誤「沒有連接,因爲目標機器主動拒絕它」,我從這裏的另一個線程理解意味着ERROR_PORT_UNREACHABLE。對於UDP async_receive的boost :: asio錯誤
我真的不明白接收電話會如何導致UNREACHABLE錯誤,因爲我沒有接觸到任何東西,我正在接收。我檢查了send()的結果,那裏沒有錯誤。
我檢查了套接字中的本地和遠程端點(錯誤之前和之後),並且它們都具有正確的IP地址和端口。
任何想法?我一直在搜索,並找不到其他人有這個問題。大多數結果讓我轉向了stackoverflow,所以我在這裏問。
編輯 - 我的問題是,我正在使用調試器。在我發送第一個數據包時,當客戶端在大約一秒鐘內發送了十幾個請求後,客戶端超時並放棄,我的數據太晚了。當我運行沒有斷點時,它工作正常。感謝大家的建議。它正在觀察Wireshark中的數據包給我提供了線索。
請不要在解決問題時編輯您的問題。添加的材料更適合作爲您接受的答案的評論。 –