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
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; }
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
Tópicos relacionados