サーバーの切断
サーバーがクライアントからのデータの受信を完了し、データをクライアントに送り返すと、サーバーはクライアントから切断され、ソケットがシャットダウンされます。
ソケットを切断してシャットダウンするには
サーバーがクライアントへのデータの送信を完了すると、ソケットの送信側を シャットダウン するSD_SENDを指定してシャットダウン関数を呼び出すことができます。 これにより、クライアントはこのソケットのリソースの一部を解放できます。 サーバー アプリケーションは引き続きソケット上のデータを受信できます。
// shutdown the send half of the connection since no more data will be sent iResult = shutdown(ClientSocket, SD_SEND); if (iResult == SOCKET_ERROR) { printf("shutdown failed: %d\n", WSAGetLastError()); closesocket(ClientSocket); WSACleanup(); return 1; }
クライアント アプリケーションがデータの受信を完了すると、 closesocket 関数が呼び出されてソケットが閉じられます。
Windows ソケット DLL を使用してクライアント アプリケーションが完了すると、 WSACleanup 関数が呼び出されてリソースが解放されます。
// cleanup closesocket(ClientSocket); WSACleanup(); return 0;
完全なサーバー ソース コード
関連トピック