用socket函数怎么连接外网?
我自己写了一个TCP的SOCKET连接程序,有服务端和客户端
但是我的程序在局域网可以实现互发数据,但是如果不是在局域网内就不能转发数据,直接就是连接不上。
如果我想不在局域网内也能连接和发数据应该怎么做?
求助~~
[解决办法]
理论上两台机器之间只要能知道对方的外网IP并能ping通,就可以用socket传输数据。
[解决办法]
楼主去查查nat, 端口映射这些是什么。
[解决办法]
[解决办法]
是不是防火墙拦截了
[解决办法]
既然ping得通,那有可能是对方未对外网开放相应端口。
[解决办法]
1.确定两个外网IP都互相能够ping通(叫做独立IP?)
2.windows下是netstat -a查看端口开启情况,测试下是否对应端口打开
3.使用wireshark或者其他抓包工具 对网口进行抓包查看是否有 数据包
上面的方法至少能排除一些问题,让问题更加精确
[解决办法]
[解决办法]
先用别的SOCKET测试工具测试下连接
[解决办法]
你确定对方主机的IP地址是有效的地址而不是网关地址吗?
如果是处在局域网内,对方主机没有公网IP就需要NAT穿透吧~~ 没做过
[解决办法]
设置下路由端口映射
[解决办法]