You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Winsock错误10061/10060:远程服务器连接失败求助

Windows Socket远程连接失败排查求助

之前尝试过相关问题的解决方案但无法解决问题,现再次提问寻求新思路。我在实现Windows Socket编程时,Socket创建成功,且能正常连接localhost,但连接远程服务器(如www.google.com、公司主机)时,会出现Winsock错误10061或10060。已确认防火墙处于关闭状态,以下是我的代码、监听端口信息及测试输出:

代码实现

/*
Socket Programming on Windows Machine
Author  : Raza Javed
Date    : 11-10-2022

*/

#include<stdio.h>
#include<winsock2.h>
#include<string.h>

int main(int argc, char *argv[])
{   

    // Winsock Initialization
    WSADATA wsa; // WSADATA是存储Winsock库信息的结构体
    SOCKET s;
    struct sockaddr_in server;

    struct in_addr **addr_list;
    struct hostent *he;
    char *hostname = "localhost";
    char ip[100];
    printf("Initializing Winsock...");
    if (WSAStartup(MAKEWORD(2,2),&wsa)!=0)
    {
        printf("Failed. Error Code : %d", WSAGetLastError()); //WSAGetLastError用于获取错误详情
        return 1;
    }

    printf("Initialized.\n");

    // Socket创建
    if((s = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET)
    {
        printf("Could not create the socket: %d", WSAGetLastError());
    }
    printf("Socket Created.\n");

    // 使用gethostbyname获取IP
    if ((he = gethostbyname(hostname)) == NULL)
    {
        printf("gethostbyname failed : %d", WSAGetLastError());
        return 1;
    }
    addr_list = (struct in_addr **)he->h_addr_list; // 将h_addr_list转换为in_addr类型
    for(int i = 0; addr_list[i] != NULL; i++)
    {
        strcpy(ip, inet_ntoa(*addr_list[i]));
    }
    printf("%s resolved to %s\n", hostname, ip);

    // 连接服务器
    //memset(&server, "\0", sizeof(server));
    server.sin_addr.s_addr = inet_addr(ip);
    server.sin_family = AF_INET;
    server.sin_port = htons(49835);

    if (connect(s, (struct sockaddr *)&server, sizeof(server)) < 0)
    {
        printf("connect error : %d", WSAGetLastError());
        getchar();
        return 1;
    }
    puts("connected");

    
    getchar(); // 保持终端窗口不关闭
    return 0;
}

监听端口信息

TCP    127.0.0.1:49835        0.0.0.0:0              LISTENING

本地连接输出

Initializing Winsock...Initialized.
Socket Created.
localhost resolved to 127.0.0.1
connected

修改为远程服务器后的输出(以www.google.com为例)

Initializing Winsock...Initialized.
Socket Created.
www.google.com resolved to 142.251.209.132
connect error : 10060

恳请各位帮忙排查问题,我完全找不到原因。

内容的提问来源于stack exchange,提问作者Raza Javed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 17:05:21