断开客户端的连接

客户端完成发送和接收数据后,客户端将与服务器断开连接并关闭套接字。

断开并关闭套接字

  1. 当客户端将数据发送到服务器后,可以调用 shutdown 函数,指定SD_SEND关闭套接字的发送端。 这允许服务器释放此套接字的某些资源。 客户端应用程序仍可接收套接字上的数据。

    // shutdown the send half of the connection since no more data will be sent
    iResult = shutdown(ConnectSocket, SD_SEND);
    if (iResult == SOCKET_ERROR) {
        printf("shutdown failed: %d\n", WSAGetLastError());
        closesocket(ConnectSocket);
        WSACleanup();
        return 1;
    }
    
  2. 客户端应用程序完成接收数据后,将调用 closesocket 函数以关闭套接字。

    使用 Windows 套接字 DLL 完成客户端应用程序时,将调用 WSACleanup 函数来释放资源。

    // cleanup
    closesocket(ConnectSocket);
    WSACleanup();
    
    return 0;
    

完整的客户端源代码

与 Winsock 一起入门

Winsock 客户端应用程序

在客户端上发送和接收数据