断开服务器连接

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

断开并关闭套接字

  1. 服务器将数据发送到客户端后,可以调用 关闭 函数,指定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;
    }
    
  2. 客户端应用程序完成接收数据后,将调用 closesocket 函数以关闭套接字。

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

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

完整的服务器源代码

与 Winsock 一起入门

Winsock 服务器应用程序

在服务器上接收和发送数据

运行 Winsock 客户端和服务器代码示例