GCC 4.4.4的C89 的Visual Studio VC++ 2008關閉套接字和Windows
我寫一個跨平臺的客戶端服務器應用程序。它將在Linux和Windows上運行。
但是,我只是想知道我關閉套接字所做的事是正確的。我關閉文件描述符。但是,如果關閉它有問題。處理這個問題的最好方法是什麼?也許有些數據仍在發送或接收?
非常感謝任何建議,
if(close(sockfd) == -1)
{
#if defined (_WIN32)
fprintf(stderr, "[ %d ] [ %s ] [ %s ] [ %d ]\n",
WSAGetLastError(), strerror(errno), __func__, __LINE__);
#elif(__linux__)
fprintf(stderr, "[ %s ] [ %s ] [ %d ]\n", strerror(errno), __func__, __LINE__);
#endif
return CS_FAILURE;
}
Microsoft有正確的方法來乾淨地關閉套接字文檔:http://msdn.microsoft.com/en-us/library/ms738547.aspx。你也許可以把它轉換成可以在Linux上運行的東西。 – 2010-05-24 19:32:52