Share via


소켓에 연결

클라이언트가 네트워크에서 통신하려면 서버에 연결해야 합니다.

소켓에 연결하려면

생성된 소켓 및 sockaddr 구조를 매개 변수로 전달하여 connect 함수를 호출합니다. 일반적인 오류를 확인합니다.

// Connect to server.
iResult = connect( ConnectSocket, ptr->ai_addr, (int)ptr->ai_addrlen);
if (iResult == SOCKET_ERROR) {
    closesocket(ConnectSocket);
    ConnectSocket = INVALID_SOCKET;
}

// Should really try the next address returned by getaddrinfo
// if the connect call failed
// But for this simple example we just free the resources
// returned by getaddrinfo and print an error message

freeaddrinfo(result);

if (ConnectSocket == INVALID_SOCKET) {
    printf("Unable to connect to server!\n");
    WSACleanup();
    return 1;
}

getaddrinfo 함수는 sockaddr 구조체의 값을 확인하는 데 사용됩니다. 이 예제에서는 getaddrinfo 함수에서 반환된 첫 번째 IP 주소를 사용하여 연결에 전달된 sockaddr 구조를 지정합니다. 연결 호출이 첫 번째 IP 주소에 실패하는 경우 getaddrinfo 함수에서 반환된 연결된 목록에서 다음 addrinfo 구조를 시도합니다.

sockaddr 구조체에 지정된 정보에는 다음이 포함됩니다.

  • 클라이언트가 연결하려고 하는 서버의 IP 주소입니다.
  • 클라이언트가 연결할 서버의 포트 번호입니다. 이 포트는 클라이언트가 getaddrinfo 함수를 호출할 때 포트 27015로 지정되었습니다.

다음 단계: 클라이언트에서 데이터 보내기 및 받기

윈삭과 함께하는 시작

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

클라이언트에 대한 소켓 만들기