首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

用socket函数如何连接外网

2012-02-21 
用socket函数怎么连接外网?我自己写了一个TCP的SOCKET连接程序,有服务端和客户端但是我的程序在局域网可以

用socket函数怎么连接外网?
我自己写了一个TCP的SOCKET连接程序,有服务端和客户端
但是我的程序在局域网可以实现互发数据,但是如果不是在局域网内就不能转发数据,直接就是连接不上。

如果我想不在局域网内也能连接和发数据应该怎么做? 
求助~~

[解决办法]
理论上两台机器之间只要能知道对方的外网IP并能ping通,就可以用socket传输数据。
[解决办法]
楼主去查查nat, 端口映射这些是什么。
[解决办法]

探讨

楼主去查查nat, 端口映射这些是什么。

[解决办法]
是不是防火墙拦截了
[解决办法]
既然ping得通,那有可能是对方未对外网开放相应端口。
[解决办法]
1.确定两个外网IP都互相能够ping通(叫做独立IP?)

2.windows下是netstat -a查看端口开启情况,测试下是否对应端口打开

3.使用wireshark或者其他抓包工具 对网口进行抓包查看是否有 数据包

上面的方法至少能排除一些问题,让问题更加精确
[解决办法]
探讨

引用:
既然ping得通,那有可能是对方未对外网开放相应端口。

恩 可能是 那怎么设置 求教~~ 例如我在服务器上想开8080端口来通信, 应该要怎么设置 我用的是LINUX系统

[解决办法]
先用别的SOCKET测试工具测试下连接
[解决办法]
你确定对方主机的IP地址是有效的地址而不是网关地址吗?
如果是处在局域网内,对方主机没有公网IP就需要NAT穿透吧~~ 没做过
[解决办法]
设置下路由端口映射
[解决办法]
探讨
1。在你要连接的外网路由器上做端口映射。在路由器的转发规则中,
新建一个,填入你的通信端口,再填写你的内网一台电脑的ip。这样,你连接
某个外网ip的时候,就相当于连到这台内网电脑。(你事先要把内网IP设置成固定的)

2。在防火墙中设置下。假设你是XP的,网络邻居——左上角的网络连接-————
更改windows防火墙设置,然后选择例外,添加端口。

热点排行