中斷伺服器連線

一旦伺服器完成從用戶端接收資料並將資料傳回用戶端,伺服器就會中斷與用戶端的連線,並關閉通訊端。

中斷連線並關閉通訊端

  1. 當伺服器傳送資料至用戶端時,可以呼叫 shutdown 函式,指定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 Sockets DLL 完成時,會呼叫 WSACleanup 函式來釋放資源。

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

完整伺服器原始程式碼

使用 Winsock 消費者入門

Winsock 伺服器應用程式

在伺服器上接收和傳送資料

執行 Winsock 用戶端和伺服器程式碼範例