Share via


Desconectar el servidor

Una vez completado la recepción de datos del servidor del cliente y el envío de datos de vuelta al cliente, el servidor se desconecta del cliente y cierra el socket.

Para desconectar y apagar un socket

  1. Cuando el servidor haya terminado de enviar datos al cliente, se puede llamar a la función de apagado que especifica SD_SEND para apagar el lado de envío del socket. Esto permite al cliente liberar algunos de los recursos de este socket. La aplicación de servidor todavía puede recibir datos en el socket.

    // 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. Cuando la aplicación cliente haya terminado de recibir datos, se llama a la función closesocket para cerrar el socket.

    Cuando la aplicación cliente se completa con el archivo DLL de Windows Sockets, se llama a la función WSACleanup para liberar recursos.

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

Código fuente completo del servidor

Introducción con Winsock

Aplicación de servidor Winsock

Recepción y envío de datos en el servidor

Ejecución del ejemplo de código de servidor y cliente de Winsock