C++-TCP协议开发的游戏连接外网进行对战失败

发布于 2016-12-13 08:31:37 字数 98 浏览 1233 评论 3

我用VC++,MFC编了一个中国象棋游戏,进行网络对战,采用的是TCP协议,局域网内连接成功,但是连接到外网时就失败了,我也百度了一下,可是网上根本就有没有具体的解决方案,请高手支招

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

晚风撩人 2017-10-10 08:35:38

如果你和你朋友的电脑都是在内网之后的,比如说都是用adsl拨号上网的,或者用通过路由器连接互联网的,那么你们输入对方外网ip是不能直接连接的。

解决方案一般是两种:
1.如果使用tcp的话,通过公网服务器转发,你们都连接到公网服务器上,通过公网服务器转发tcp报文。
2.就是通过点对点通信,好像qq聊天一样,利用udp打洞,实现两台内网计算机的直接通信。但是打洞要看路由类型的,不是100%能打通。所以一般是两种方案一起,如果打不通的话就自动使用第一种方案。

建议去网上找找p2p相关的电子书看看

泛泛之交 2017-03-15 03:11:27

1.代码中服务器IP没有设置正确。
2.代码中使用的通信端口被路由器屏蔽了。

浮生未歇 2016-12-23 14:53:32

1.如果你们两个都是通过路由器来NAT上网的话,有一种最直接的方法能让你们联通就是,把路由器去掉,直接两台机器拨号上网就可以了。
2.用花生壳。
3.如果你的通信方式是有固定的服务端口的话,可以将端口映射到路由器公网的一个端口上。

说到底还是你不懂网络,这不是谁给你个代码就能解决的,你还是先了解了解NAT这些东西了,在来谈解决方法吧,不然连这些都不懂给你说了其实也是白搭。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文