用RTT的LwIP协议无法连接远程服务器的奇怪现象
我做了一个以太网终端,用Socket套接字连接服务端传输数据的这么一个应用。做的过程中一直拿局域网的一台服务器做Socket服务端(连接在同一个路由器上),一直没有什么问题;
今天测试连接远程的一个服务端(大概过两三个路由),就一直连接不上。
很奇怪为什么会这样,各位大侠帮忙看看。 lz搜搜nat和stun去,三言两语实在难说清 能ping通不? 本地能连上,远程连不上,估计路由没设正确! 折腾了一天,搞清楚了。
是 gethostbyname()这个函数解析字符串的IP地址时候出错,
这个函数解析字符串表示的IP地址,如"192.168.112.110"这样的字符串,是以0x00作为字符串结束判断的。
而我开的数组刚好是15个字节,造成短一些的IP地址,如"192.168.112.11"解析是正确的,最长的IP地址由于数组越界,造成解析错误。
经验与教训:数组存放字符串数据的时候,要注意多开一个字节存放0x00的结束标志。
页:
[1]