日期:2014-05-16  浏览次数:20743 次

UDP 外网端口访问的问题
开启其他程序的相同端口是可以访问的,不存在端口被屏蔽的问题。

  // servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");
  servaddr.sin_port = htons(SERV_PORT);

改为INADDR_ANY ,外网无法访问。但是127.0.0.1,本机是可以访问的,排除程序处理问题。


请linux 大侠们帮看一下,坐等回复。

------解决方案--------------------
楼主

1)你测的时候抓抓包,看看,有没有ICMP信息(对应于你访问的端口)

2)你用了netstat -a -d udp检测PC机上的进程的网络端口是否打开了吗?

3)你用回环地址有什么用?回环地址只是用来测你的网卡是否正常工作的,没用。

4)你的外网是指什么?局域网中的“外网”,还是internet中的外网

5)INADDR_ANY指定了你的程序绑定于所有的地址,所以无论通过你PC的那个地址来访问都可以

6)你的外网经过路由器转发数据包了没有?如果有,访问不到太正常

7)你的外网地址是什么?不是”192.168xxx“吧

就这么多