使用TCP在同一台电脑上可以建立连接,在两台电脑上却连接失败的原因分析

Posted csymaet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用TCP在同一台电脑上可以建立连接,在两台电脑上却连接失败的原因分析相关的知识,希望对你有一定的参考价值。

 

 最近在用unity做联机游戏,在网络方面费了不少劲,总是在代码没问题的时候出一些莫名奇妙的BUG,不过后来都决定了。如果感觉代码没问题,八成就是防火墙的问题。

用unity发布后的游戏,如果涉及网络,在第一次运行时会出现这个界面——windows 安全警报。

技术分享图片

我清楚记得我点了允许访问,可后来还是出现了用TCP连接不上的问题,于是我把游戏复制到了另外一文件夹下,运行后就又出现了这个界面,我点了允许,运行后却可以顺利的实现TCP连接,然后我就感觉特别奇怪,我已经被各种奇怪的BUG困惑好几次了,比如说有一次我的电脑可以用UDP发消息,却收不到消息,因为可以发,一度让我以为不是防火墙的问题,可事实上就是防火墙的问题。

经常一番思索,终于得到了答案,注意看上图,默认勾选的是专用网络,但是当我测试的时候,因为要用两台电脑,所以就让电脑连上了wifi,在有wifi的情况下,上图默认勾选的是公用网络,这就是原因所在!!!默认情况下连宽带属于专用网络,连WIFI属于公用网络,我第一次运行游戏是在连接宽带的情况下运行的,只勾选了专用网络,所以后来测试就一直连不上,还让我误认为不是防火墙的问题。

另外我在做UDP广播的时候还发现了一个问题,就是在电脑上可以顺利广播的代码,放到手机上就报错说没有权限,解决方法是加一条语句“udpSocket.EnableBroadcast = true;”就行了,不过不清楚的是为什么在电脑就不用加这条语句呢?

以上是关于使用TCP在同一台电脑上可以建立连接,在两台电脑上却连接失败的原因分析的主要内容,如果未能解决你的问题,请参考以下文章

【DELPHI】如何在两台电脑间传送文件?

怎么使用scp 命令在两台电脑上传输文件

为啥同一个word文档在两台电脑上打开里面的格式不一样

TCP / IP在两台计算机之间发送数据?

当我在两台不同的电脑上使用 BitTorrent 下载相同的 torrent 文件并使用相同的互联网连接时会发生啥?

如何在两台ubuntu系统电脑之间共享资料