当前位置:编程学习 > VB >>

winsock 能穿透路由吗?

在用vb做聊天软件的时候,在同一层网络里一点问题也没有,在不同网络层里该怎么做?上层网络有固定Ip(211.81.25.217) ,下层与上层连接没问题,上层因为有固定的ip和端口,下层局域网(路由ip:211.81.25.134)电脑ip:192.168.0.153 收不到上层网络发回的信息,按MSDN里做的,网上资料说要穿透路由,怎么穿透啊?急急! --------------------编程问答-------------------- 用TCP方式连接,下层连接上层,只要连接成功了,那么这个连接就是一对一固定的,不会出现下层收不到上层发回的信息的情况。
只有必须由上层连接到下层时,才需要考虑穿透问题。 --------------------编程问答-------------------- 我用TCP方式建立了连接,同样下层向上层发送数据时,没有问题,可是上层发送数据到下层收不到,因为下层与上层的之间有路由器,端口映射我在路由里也做了,可还是不行 --------------------编程问答-------------------- 应该是你的代码有问题吧
建立连接后
上层发送数据到上层成功
代表路由已经把上层IP列入可信任IP地址列表了,并且会自动将上层(外网)IP与下层(内网)IP做好映射的
--------------------编程问答-------------------- 友情up --------------------编程问答-------------------- 友情up --------------------编程问答-------------------- 估计是你代码没写好

TCP方式时,客户端连接好了服务器后,就已经OK了..... --------------------编程问答-------------------- 服务端发送请求成功后,一激动把客户端抛弃了.. --------------------编程问答-------------------- 如果是由外网连接到内网,那么需要在路由器上做好端口映射;如果是由内网连接到外网,那么直接连就可以了,无需做端口映射的。
一旦连接成功,相当于一部手机与一部座机已经接通,然后就可以相互通话了,不会存在手机听不到座机的情况,虽然座机位于“内网”。 --------------------编程问答-------------------- --------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- 我也在找这方面的资料


--------------------编程问答--------------------
引用 8 楼 happy_sea 的回复:
如果是由外网连接到内网,那么需要在路由器上做好端口映射;如果是由内网连接到外网,那么直接连就可以了,无需做端口映射的。 
一旦连接成功,相当于一部手机与一部座机已经接通,然后就可以相互通话了,不会存在手机听不到座机的情况,虽然座机位于“内网”。


支持! --------------------编程问答-------------------- 这和socket其实无关,socket只是一个API,它不能决定网络是否能链接。

这时网络决定得,TCP通讯要求对方必须是可达得,但是如果对方在不同得子网内,就不可以直接连接。所谓得“穿透路由”就是一个必要条件,而这个穿透路由不是通过socket这样得接口控制得,而是双方得网管需要手工帮你配置好,让你们可以彼此通讯才行,这一般情况都是不可能得。
对于QQ,MSN这样得聊天工具,实际上它是通过UDP通讯得。而他们之所有成功,是因为他们得每个客户端都通过特定UDP端口发送消息给QQ、MSN得中央服务器,这种消息会自动在路由器、网关、防火墙上开辟一个通道,这就是所谓得“打洞”。
因此,如果你要跨网络通讯,第一个条件是必须建立一个所有客户端都可以访问得服务器(也就是所谓得有公共IP得服务器),第二个条件是必须通过UDP通讯。
引用楼主 qingen2001 的帖子:
在用vb做聊天软件的时候,在同一层网络里一点问题也没有,在不同网络层里该怎么做?上层网络有固定Ip(211.81.25.217) ,下层与上层连接没问题,上层因为有固定的ip和端口,下层局域网(路由ip:211.81.25.134)电脑ip:192.168.0.153 收不到上层网络发回的信息,按MSDN里做的,网上资料说要穿透路由,怎么穿透啊?急急!
--------------------编程问答-------------------- 这个有没有结果啊?我也是遇到一模一样的问题! --------------------编程问答-------------------- 值的研究啊,期待大侠 --------------------编程问答-------------------- 我晕,哪个挖的坟....... --------------------编程问答-------------------- 这个东西我也在想,有个服务器是很关键的 --------------------编程问答--------------------
引用 7 楼 aisac 的回复:
服务端发送请求成功后,一激动把客户端抛弃了..

楼主表达的不太清楚
是不是想打洞 --------------------编程问答-------------------- 对的
引用 13 楼 arong1234 的回复:
这和socket其实无关,socket只是一个API,它不能决定网络是否能链接。

这时网络决定得,TCP通讯要求对方必须是可达得,但是如果对方在不同得子网内,就不可以直接连接。所谓得“穿透路由”就是一个必要条件,而这个穿透路由不是通过socket这样得接口控制得,而是双方得网管需要手工帮你配置好,让你们可以彼此通讯才行,这一般情况都是不可能得。
对于QQ,MSN这样得聊天工具,实际上它是通……
--------------------编程问答-------------------- 挖开-埋了-再挖
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,