• unity学习(91)——云服务器调试——补充catch和if判断


    本机局域网没问题,服务器放入云服务器后,会出现异常。

    想要找到上面的问题,最简单的方法就是在云服务器上下载一个vs2022! 

    应该不是大小端的问题!

    修改一下readMessage的内容,可以直接粘贴到云服务器的

     截图好几遍才看到问题

    外面再套一个try catch

    1. public static void readMessage(Session session, byte[] bytes)//读取数据包
    2. {
    3. try
    4. {
    5. ByteArray byteArray = new ByteArray(bytes);
    6. int num1 = byteArray.ReadInt();
    7. int num2 = byteArray.ReadInt();
    8. int num3 = byteArray.ReadInt();
    9. int length = byteArray.ReadInt();
    10. string str = (string)null;
    11. if (num1 == 0 || num1 == 1 || num1 == 2)
    12. {
    13. if (length > 0)
    14. { str = byteArray.ReadUTFBytes((uint)length); }
    15. LogicHandler.getInstance().process(session, new SocketModel()
    16. {
    17. Type = num1,
    18. Area = num2,
    19. Command = num3,
    20. Message = str
    21. });
    22. }
    23. }
    24. catch(Exception ex)
    25. {
    26. Console.WriteLine(ex);
    27. }
    28. }
    29. }

     再登录还是直接卡死,还是直接输出那段代码。

    后来又测了一下前两个用户没有问题,第三个开始,之前的用户看不到新进入的角色,第四个用户卡的进都进不去!

    游戏嘛!换个环境出一些问题都是很正常的!

    这次是log函数,前面reg也刚刚犯了这个错误,好改!还有,就是现在服务器处理数据包的速度实在是太慢了,后面每个线程肯定需要做一个双端心跳统计的!tcp相比于udp应该是有优势的

    log和reg的问题应该都是由于多次点击,发送空包造成的!云服务器复制不出来,但是能复制进去。

    这种修改方法明显治标不治本!第四个玩家登录时服务器又卡死了,一点一点治疗吧!

    此时进来的是'000包',但是message是null:

    所以去serverStart中增加

     ‘200包’请求时,内容就是空的,条件改成if(str!=null || num1==2)

    修改后,问题现在只剩之前玩家看不到之后玩家登录,这一个问题了!后登陆的玩家不初始化,先登录的这边自然也无法将广播转换成移动(123和124问题),这些问题之前已经解决了,现在的问题是云服务器这边不初始化。

    云服务器那边最好输出一些console,,这样反而感觉不卡了好多! 

  • 相关阅读:
    数据挖掘复习
    element-ui的form校验失败
    瑞吉外卖09-菜品模块的CRUD与启售、停售
    2022-2027年中国冷链物流行业市场发展预测与投资趋势分析报告
    软件测试基础知识
    R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类...
    DSPE-PEG-Aldehyde,DSPE-PEG-CHO科学研究用化学试剂
    Pytorch API
    Django-(5)
    甘特图是什么?利用甘特图来优化项目管理流程
  • 原文地址:https://blog.csdn.net/qq_27863281/article/details/138174485