다음을 통해 공유


서버 연결 끊기

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

소켓 연결 해제 및 종료

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

Winsock Server 애플리케이션

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

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