连接到套接字

要使客户端在网络上进行通信,它必须连接到服务器。

连接到套接字

调用 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 客户端应用程序

为客户端创建套接字