如果客户端尝试连接到不存在的服务器,如何检查错误?
我的代码!
//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
}发布于 2017-03-28 22:13:44
您正在将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一起使用。
https://stackoverflow.com/questions/43071457
复制相似问题