Share via


ソケットへの接続

クライアントがネットワーク上で通信するには、サーバーに接続する必要があります。

ソケットに接続するには

connect 関数を呼び出し、作成されたソケットと sockaddr 構造体をパラメーターとして渡します。 一般的なエラーを確認します。

// 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 ではじめにする

Winsock クライアント アプリケーション

クライアントのソケットの作成