다음을 통해 공유


클라이언트 연결 끊기

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

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

  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 클라이언트 애플리케이션

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