当我从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();
就是这样。相同的代码可在同一台PC(Windows 10 Home)上的独立服务器中工作,但是在Unity内时不接受任何连接。有趣的是,Unity确实在同一端口上接受本地连接。
我还尝试添加一些特定于Unity的代码,例如:
Network.InitializeServer(16, port, false);
但这没有帮助。 有什么线索在Unity中有什么特别之处,以至于不允许非本地主机的连接?
谢谢, 瓦西里
答案 0 :(得分:0)
tcplistener.Server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
您可能需要将其设置为可在Unity中重用。