说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

如何让外网服务器发的信息,内网私有地址的主机能接收到?

编辑:说三道四文库 发布时间:2018-08-20 03:03
HTML文档下载 WORD文档下载 PDF文档下载
oyljerry 于 2011-10-24 17:28:30 编辑 我用vc++写了一个基于UDP协议的聊天程序(服务器和客户端是同一个程序),我在局域网内两台主机可以聊,但是,我上传一个到外网的服务器上,进行通信时,服务器能接到我发的信息内容,但是我接不到服务器发的信息,怎么回事啊。。。需要做什么配置,还是程序里要添加什么代码啊!!!!求解释。。。。。
服务器是公网IP,而你的IP是内网IP的缘故?
不知道,应该是吧,反正是我可以发给服务器,服务器能接收显示,但服务器发给我,我这边没反应
引用 2 楼 gesanghuazgy 的回复:
不知道,应该是吧,反正是我可以发给服务器,服务器能接收显示,但服务器发给我,我这边没反应

那应该就是 因为服务器是公网IP,而你的IP是内网IP的缘故
打洞 回复内容太短了!
是打洞,这样就不短了。
打洞,怎么用程序实现啊。。。
最简单的,在你的路由器上做个端口映射。
先让客户端发给服务器,再让服务器往发送方的“网络地址”发送,也就是服务方从套接字取得的sockaddr_in,看看客户端能否接收到。
楼上正解.

我这几天就在研究udp 打洞. 把p2pserver和client写出了.. 现在能外网和内网相互通讯.直接发送.
还没测试内网对内网. 理论上说应该没问题.除非有个内网处于多级内网
udp端口映射是最解决问题的根本办法.我以前用raknet 内外网通讯时.内网端口映射.就可以通讯了.
udp打洞,限制因素很多.
NAT穿透 吧。我也是乱说
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘