連線到通訊端

若要讓用戶端在網路上通訊,它必須連線到伺服器。

若要連線到通訊端

呼叫 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 用戶端應用程式

建立用戶端的通訊端