Winsock 2.0无法连接到公共IP地址

时间:2011-08-25 06:25:11

标签: c++ network-programming udp ip-address winsock2

因此,我正在尝试构建一个简单的文本IM程序,以进入精彩的网络世界。我使用带有C ++的Winsock 2.0编写了2个程序:服务器和客户端。我通过套接字创建指定了UDP连接:

SOCKET Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

当我尝试使用本地IP地址连接到服务器时,一切正常。但是,当我使用我的互联网IP地址时,它将无法连接。我相当确定它不是防火墙问题,因为我在防火墙和防病毒软件都进行了多次测试。有什么我想念的吗?您能想到为什么能够通过本地地址连接而不是公共IP地址的任何其他原因?非常感谢你!

1 个答案:

答案 0 :(得分:1)

您的公共IP地址很可能归您的网络路由器设备所有。它需要配置为将流量传递到您的计算机上

  public IP            internal router
   address +--------+  IP address  +---------+
      v    |        |  v           |         |
 ----------+ router +--------------+ desktop +
           |        |           ^  |         |
           +--------+   internal   +---------+
                      desktop IP address

http://portforward.com/