다음을 통해 공유


서버 연결 끊기

서버가 클라이언트로부터 데이터를 수신하고 클라이언트로 데이터를 다시 보내면 서버는 클라이언트에서 연결을 끊고 소켓을 종료합니다.

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

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

    // 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. 클라이언트 애플리케이션이 데이터 수신을 완료하면 closesocket 함수가 호출되어 소켓을 닫습니다.

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

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

전체 서버 소스 코드

윈삭과 함께하는 시작

Winsock Server 애플리케이션

서버에서 데이터 수신 및 보내기

Winsock 클라이언트 및 서버 코드 샘플 실행