다음을 통해 공유


클라이언트 연결 끊기

클라이언트가 데이터 전송 및 수신을 완료하면 클라이언트는 서버에서 연결을 끊고 소켓을 종료합니다.

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

  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 시작하기

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

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