我在写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