我正在使用 unet 进行客户端-服务器通信,当我从服务器(在 PC 上)向客户端(在 PC 上)广播消息时,它工作正常,但是当我尝试从服务器(PC)到客户端(Hololens 模拟器)时,unet 没有'不工作。
网络客户端.cs
public override void OnReceivedBroadcast(string fromAddress, string data)
{
fromAddress1 = fromAddress;
portnum = data;
Connect_with_server();
}
void Connect_with_server()
{
myclient = new NetworkClient();
myclient.RegisterHandler(MsgType.Connect, OnConnected);
myclient.RegisterHandler(MsgType.Disconnect, OnDisconnected);
myclient.RegisterHandler(ChatMsg.PlayPauseID, redgreen_val_received);
myclient.Connect(fromAddress1, Convert.ToInt32(portnum));
}
服务器.cs
void Start()
{
startServer();
}
public void startServer()
{
int serverPort = createServer();
if (serverPort != -1)
{
Debug.Log("Server created on port : " + serverPort);
discovery.broadcastData = serverPort.ToString();
discovery.Initialize();
discovery.StartAsServer();
}
else
{
Debug.Log("Failed to create Server");
}
}
int minPort = 10000;
int maxPort = 10010;
int defaultPort = 10000;
private int createServer()
{
int serverPort = -1;
bool serverCreated = NetworkServer.Listen(defaultPort);
if (serverCreated)
{
serverPort = defaultPort;
}
else
{
Debug.Log("Failed to create with the default port");
for (int tempPort = minPort; tempPort <= maxPort; tempPort++)
{
if (tempPort != defaultPort)
{
if (NetworkServer.Listen(tempPort))
{
serverPort = tempPort;
break;
}
if (tempPort == maxPort)
{
Debug.LogError("Failed to create server");
}
}
}
}
return serverPort;
}
void OnClientConnected(NetworkMessage netMessage)
{
MyNetworkMessage messageContainer = new MyNetworkMessage();
messageContainer.message = "Thanks for joining Mr.Client!";
Debug.Log("Client connected: ");
}
PS:我在UWP能力设置中开启了Private network client-server,在Player设置中也开启了PrivateNetworkClientServer和InternetClientServer。