我在寫C的IRC客戶端++,目前我有一個問題,即,在退出時,我做的:正常關閉TCP套接字
Send("QUIT :Quit\r\n"); // just an inline, variadic send() wrapper shutdown(m_hSocket, SD_BOTH); closesocket(m_hSocket); WSAShutdown();
然而,問題是,退出消息沒有被髮送。我嗅探了來自客戶端的數據包,事實上這個消息從未被髮送過。我相信這是套接字未被刷新的問題,但我不知道如何做到這一點,谷歌建議禁用Nagle的算法,但我懷疑這是好的做法。
在此先感謝。
因爲當你得到這個工作時,請記住,一些IRC網絡將不會顯示自定義退出信息,直到您登錄> 5分鐘(實際長度因網絡而異)。這不是對你目前的問題的答案,但它是一個陷阱,可以在以後的混淆:) – 2011-04-17 22:59:51
有趣的一點,但我已經爲它的幾個我們現在退出,仍然得到: 閱讀錯誤:連接重置由同行 – Saul 2011-04-18 00:07:08
是的,我只是想我會提到它,因爲當你得到的插座問題修復:) – 2011-04-18 05:14:55