你在哪里 server_name 从?你确定它是一个有效的IP地址吗? 另外,检查 WSAGetLastError() 具体看看出了什么问题。
server_name
WSAGetLastError()
请记住,并非所有主机名都具有反向DNS条目。这完全合法 gethostbyaddr 在真实有效的IP地址上失败。如果你正在做p2p,最好不要依赖主机 名 除了可能用于诊断显示之外(如果反向查找失败,则回退到IP地址)。
gethostbyaddr
的 编辑 强> :使用新的扩展代码示例,很明显您实际上并不需要 gethostbyaddr 一点都不
struct sockaddr_in server; memset((void*)&server, 0, sizeof(server)); server.sin_family = AF_INET; server.sin_addr.S_un.S_long = inet_addr(server_name); server.sin_port = htons(port); conn_socket = socket(AF_INET, socket_type, 0); connect(conn_socket, (struct sockaddr*)&server, sizeof(server))
gethostbyaddr 仅在需要反向DNS时才需要 名称 有问题的服务器。 inet_addr 已经为您提供了一个合适的地址来连接。
inet_addr