Unity TCP/IP 服务器只接受本地连接.同一台 PC 上的相同代码不在 Unity 上工作正常



当我从Unity项目内部和普通Visual Studio项目在同一台PC上运行完全相同的代码时,我得到的TCP/IP服务器的结果不同。 请注意,端口在防火墙中显式打开。

代码如下:

IPAddress localAddr = IPAddress.Any;
var s_server = new TcpListener(localAddr, port);
s_server.Start();
TcpClient socket = s_server.AcceptTcpClient();

就是这样。相同的代码在位于同一台电脑(Windows 10 家庭版(上的独立服务器中工作,但当它位于 Unity 内部时,不接受任何连接。有趣的是,Unity 确实在同一端口上接受本地连接。

我还尝试添加一些特定于 Unity 的代码,例如:

Network.InitializeServer(16, port, false);

但这并没有帮助。 任何线索 Unity 有什么特别之处,以至于它不允许来自本地主机的连接?

谢谢 瓦西里

tcplistener.Server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);

您可能需要将其设置为可在 Unity 中重用。

最新更新