Compartilhar via


Desconectando o servidor

Depois que o servidor é concluído recebendo dados do cliente e enviando dados de volta para o cliente, o servidor se desconecta do cliente e desligará o soquete.

Para desconectar e desligar um soquete

  1. Quando o servidor terminar de enviar dados para o cliente, a função de desligamento poderá ser chamada especificando SD_SEND para desligar o lado de envio do soquete. Isso permite que o cliente libere alguns dos recursos para esse soquete. O aplicativo de servidor ainda pode receber dados no soquete.

    // 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. Quando o aplicativo cliente termina de receber dados, a função closesocket é chamada para fechar o soquete.

    Quando o aplicativo cliente é concluído usando a DLL do Windows Sockets, a função WSACleanup é chamada para liberar recursos.

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

Código-fonte completo do servidor

Introdução com Winsock

Aplicativo servidor Winsock

Recebendo e enviando dados no servidor

Executando o exemplo de código de cliente e servidor winsock