Я пишу IRC-клиент на C ++, и в настоящее время у меня возникает проблема, когда при выходе я делаю:
Send("QUIT :Quit\r\n"); // just an inline, variadic send() wrapper
shutdown(m_hSocket, SD_BOTH);
closesocket(m_hSocket);
WSAShutdown();
Однако проблема в том, что сообщение QUIT не отправляется. Я прослушал пакеты, поступающие от клиента, и на самом деле это сообщение никогда не отправляется. Я полагаю, что это проблема с не очищенным сокетом, но я понятия не имею, как это сделать, и Google предложил отключить алгоритм Nagle, но я сомневаюсь, что это хорошая практика.
Заранее спасибо.