클라이언트 연결 끊기

클라이언트가 데이터를 보내고 받는 작업이 완료되면 클라이언트는 서버에서 연결을 끊고 소켓을 종료합니다.

소켓의 연결을 끊고 종료하려면

  1. 클라이언트가 서버에 데이터 전송을 완료하면 소켓의 송신 쪽을 종료할 SD_SEND 지정하는 종료 함수를 호출할 수 있습니다. 이렇게 하면 서버가 이 소켓에 대한 일부 리소스를 해제할 수 있습니다. 클라이언트 애플리케이션은 여전히 소켓에서 데이터를 받을 수 있습니다.

    // shutdown the send half of the connection since no more data will be sent
    iResult = shutdown(ConnectSocket, SD_SEND);
    if (iResult == SOCKET_ERROR) {
        printf("shutdown failed: %d\n", WSAGetLastError());
        closesocket(ConnectSocket);
        WSACleanup();
        return 1;
    }
    
  2. 클라이언트 애플리케이션이 데이터 수신을 완료하면 closesocket 함수가 호출되어 소켓을 닫습니다.

    Windows 소켓 DLL을 사용하여 클라이언트 애플리케이션을 완료하면 WSACleanup 함수가 호출되어 리소스를 해제합니다.

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

전체 클라이언트 소스 코드

윈삭과 함께하는 시작

Winsock 클라이언트 애플리케이션

클라이언트에서 데이터 보내기 및 받기