0

如果客户端尝试连接到不存在的服务器,如何检查错误?

我的代码!

//Server 
void Start () { 
NetworkServer.Listen(13044);
}

//Client
NetworkClient thisclient = new NetworkClient ();
thisclient.Connect ("127.0.0.1", 13044);  
thisclient.RegisterHandler(MsgType.Error, errortest);
thisclient.RegisterHandler (MsgType.Disconnect, dctest);  

void errortest(NetworkMessage netMsg){
var errorMsg = netMsg.ReadMessage<ErrorMessage>();  
Debug.Log("Error:" + errorMsg.errorCode);}  

void dctest(NetworkMessage netMsg){  
//if I run the client while the server is not present, its goes here instead of errortest 
}
4

1 回答 1

0

您将 ReadMessage 与 ErrorMessage 一起使用,但 ErrorMessage 仅在错误消息 (OnError) 中有效。

您的 dctest 功能在断开连接时触发,而不是在错误时触发。

Disconnect 是一个特殊的 MsgType(请参阅https://docs.unity3d.com/ScriptReference/Networking.MsgType.html),(如果我记得的话)不包含任何数据。

所以回答你的问题:你已经有了结果。一切都在 netMsg 中。

https://docs.unity3d.com/Manual/UNetMessages.html

当您想发送/读取自定义数据时,ReadMessage 函数主要与您自己的 NetworkMessages 一起使用。

于 2017-03-28T14:13:44.003 回答