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

2024-04-26 13:04

本文主要是介绍unity学习(91)——云服务器调试——补充catch和if判断,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

应该不是大小端的问题!

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

 截图好几遍才看到问题

外面再套一个try catch

    public static void readMessage(Session session, byte[] bytes)//读取数据包{try{ByteArray byteArray = new ByteArray(bytes);int num1 = byteArray.ReadInt();int num2 = byteArray.ReadInt();int num3 = byteArray.ReadInt();int length = byteArray.ReadInt();string str = (string)null;if (num1 == 0 || num1 == 1 || num1 == 2){if (length > 0){ str = byteArray.ReadUTFBytes((uint)length); }LogicHandler.getInstance().process(session, new SocketModel(){Type = num1,Area = num2,Command = num3,Message = str});}}catch(Exception ex){Console.WriteLine(ex);}}
}

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

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

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

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

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

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

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

所以去serverStart中增加

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

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

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

这篇关于unity学习(91)——云服务器调试——补充catch和if判断的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/937662

相关文章

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法

Java服务实现开启Debug远程调试

《Java服务实现开启Debug远程调试》文章介绍如何通过JVM参数开启Java服务远程调试,便于在线上排查问题,在IDEA中配置客户端连接,实现无需频繁部署的调试,提升效率... 目录一、背景二、相关图示说明三、具体操作步骤1、服务端配置2、客户端配置总结一、背景日常项目中,通常我们的代码都是部署到远程

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程