McDeggy 发表于 2011-3-5 15:44:09

用RTT的LwIP协议无法连接远程服务器的奇怪现象

我做了一个以太网终端,用Socket套接字连接服务端传输数据的这么一个应用。

做的过程中一直拿局域网的一台服务器做Socket服务端(连接在同一个路由器上),一直没有什么问题;

今天测试连接远程的一个服务端(大概过两三个路由),就一直连接不上。

很奇怪为什么会这样,各位大侠帮忙看看。

wyoujtg 发表于 2011-3-5 16:41:43

lz搜搜nat和stun去,三言两语实在难说清

ljt8015 发表于 2011-3-5 17:18:51

能ping通不?

lixun00 发表于 2011-3-7 11:08:27

本地能连上,远程连不上,估计路由没设正确!

McDeggy 发表于 2011-3-8 12:41:59

折腾了一天,搞清楚了。

是 gethostbyname()这个函数解析字符串的IP地址时候出错,

这个函数解析字符串表示的IP地址,如"192.168.112.110"这样的字符串,是以0x00作为字符串结束判断的。

而我开的数组刚好是15个字节,造成短一些的IP地址,如"192.168.112.11"解析是正确的,最长的IP地址由于数组越界,造成解析错误。

经验与教训:数组存放字符串数据的时候,要注意多开一个字节存放0x00的结束标志。
页: [1]
查看完整版本: 用RTT的LwIP协议无法连接远程服务器的奇怪现象