当我从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 中重用。