即时消息程序 - 适用于127.0.0.1,但不适用于其他计算机

时间:2010-08-06 18:34:52

标签: c++ sockets winapi tcp

我已经按照http://www.codeproject.com/KB/IP/beginningtcp_cpp.aspxt

的教程进行了操作

教授如何使用带有c ++的winsockets,我终于设法使我的程序工作,通过测试127.0.0.1,我可以打开我的程序的两个流程实例,然后在端口(700)上进行一次监听然后使用ip 127.0.0.1通过端口700上的其他程序连接到它,然后我可以在两个程序之间发送消息而没有任何问题。

我把程序发给了我的朋友,得到了他的ip并告诉他开始在端口700上听,然后我试图连接到他的ip地址和端口700,程序冻结了大约20秒(因为我有它与我的窗口相同的线程)和connect()函数在这里返回SOCKET_ERROR:

if (connect(g_sock, (SOCKADDR*)&target, sizeof(target)) == SOCKET_ERROR)
{
    return 4;
}

我已尝试过其他端口,我已经允许它在Windows防火墙上..禁用窗口防火墙,禁用avast。

我的代码与教程中的代码几乎相同,我也下载了教程中的代码,我得到了与我相同的错误。

我正在使用Windows 7终极32位

2 个答案:

答案 0 :(得分:0)

你们中的任何一个是否支持NAT防火墙/路由器?您提供给外部世界的IP地址可能不是您自己的计算机使用的IP地址,这将使程序无法与您通信,除非您通过NAT设置了某种隧道。

答案 1 :(得分:0)

你是在互联网上尝试这个吗?两台计算机之间可能存在防火墙。

理想情况下,您应首先在局域网上测试您的程序。对于这种测试来说,这是一个更合适的环境。

相关问题