MFC, TCP/IP客户端连接失败,API 错误码1967541584

1.编译可以顺利通过,在一个电脑上同时运行客户端和服务器时,连接正常,可以发送消息。

2.在两个电脑分别运行客户端和服务器时,客户端无法链接服务器,IP 和端口配置都是正确的,猜想问题应该出在客户端执行 connect 时出错。

3.一台电脑时在 accept 设置断点,顺利执行。两台电脑时在服务器端 accept 设置断点,没有执行。可知问题出现在客户端。

4.错误码返回时间大概在 20 s-24 s之间。

5.尝试过关掉网络防火墙,其中两台电脑分别是 win10,win7。也是连接不上

主要代码:

UINT nPort = atoi(szPort);                   //将字符串类型转换成数值类型
    m_sock.Create();                         
    if(m_sock.Connect(szIP, nPort))
    {
        MessageBox("成功连接服务器","提示");
        CString szFormat;
        szFormat.Format("%s----->%s",m_szName,"进入聊天室");
        m_sock.Send(szFormat.GetBuffer(0), szFormat.GetLength());
    }
    else
    {
        //连接服务器端运行的主机IP地址
        CString str;
        str.Format("连接失败:%d",GetLastError);
        AfxMessageBox(str);
    }

错误提示图片:
图片说明

c++

2个回答

两个计算机是不是在同一个网段,本省的网能不能联通,你用的端口号是多少,不要使用太大的端口号,不要多个程序监听同一个端口。除了系统的防火墙,还要检查路由器。

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复一丁_: 跨网段,需要双方映射到公网ip上,通过公网ip访问,或者用vpn将两个内网组成一个虚拟局域网。
大约一年之前 回复
qq_41291253
一丁_ 您好,感谢您的回答。同一网段通信正常,如果我想跨网段进行通信,要怎么配置路由,或者要用什么关键字去网上搜索解决方案。
大约一年之前 回复

在客户机骑上ping下服务器的IP地址,看看能不能通,如果不能通检查下网线、路由。

qq_41291253
一丁_ 感谢您的回复。
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问