服务器监听地址问题,求大神帮忙!【急急急】
服务器里面采用下面的代码来绑定监听地址。
addr.sin_addr.s_addr = htonl(INADDR_ANY);
程序运行后,在服务器内部通过回环地址127.0.0.1自测是ok的,但是在其他电脑上用client输入服务器真实IP进行远程连接则失败,通过抓包来看,服务器返回了RST包,导致TCP连接无法建立。
这时候通过netstat -an观察网络状态发现:
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:9990 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN
我自己开的服务的地址是127.0.0.1,不是0.0.0.0也不是服务器真实IP。
个人觉得应该是0.0.0.0
如果将INADDR_ANY换成是服务器真实的IP,则远程调试是ok的,而且netsta -an也可观察到 真是IP:端口。但是在这个情况下,服务器内部回环测试无法进行。
求帮忙。
先谢过!