unity学习(87)——断线的原因--客户端堆栈溢出1

2024-04-20 11:36

本文主要是介绍unity学习(87)——断线的原因--客户端堆栈溢出1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

无论unity还是exe问题都是一样的,都是客户端一直在发123,但收不到124,退出时服务器能发126,但是客户端压根接受不到126。一下确实解决不了问题,但其实已经十分接近了!

客户端断线后就再也收不到任何包了!现在需要弄清断线的原因

实测,当客户端都已经中断了以后,服务器还在不停的brocast124,客户端此时毛都收不到

 而且,此时broadcast中没有try-catch的,直观感觉就是session的遍历那里出了问题!!!

实际测试发现,即使两个客户端都收不到124数据包了!session的遍历依旧是双份的!session没有问题是write返回的包出现了问题!之前的非unicode字符的问题应该也来自这里

两边都停止时,服务器依然broadcast124但此时客户端就是收不到124

 刨根问底,进入write函数继续查看,最后唯一可能出问题的地方就是这里了!

实际测试,发现即使断线,socket.Send还是一直不停的在发送!

根本找不到问题,感觉是socket溢出了,在服务器加个try-catch看看能抓到点什么不?实测结果抓不到任何异常!

最精彩的部分来了,此时再登录一个exe,此时之前的客户端的移动都是可以传过来的,说明session链接并没有断开。并且,动作是直接同步过来的,说明溢出应该不在服务器这边!应该就是客户端那边数据包溢出了

还有个问题就是只能同时登录3个客户端!第四个客户端会卡在登录界面,下次再解决这个问题。

这篇关于unity学习(87)——断线的原因--客户端堆栈溢出1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

MYSQL查询结果实现发送给客户端

《MYSQL查询结果实现发送给客户端》:本文主要介绍MYSQL查询结果实现发送给客户端方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql取数据和发数据的流程(边读边发)Sending to clientSending DataLRU(Least Rec

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

IDEA中Maven Dependencies出现红色波浪线的原因及解决方法

《IDEA中MavenDependencies出现红色波浪线的原因及解决方法》在使用IntelliJIDEA开发Java项目时,尤其是基于Maven的项目,您可能会遇到MavenDependenci... 目录一、问题概述二、解决步骤2.1 检查 Maven 配置2.2 更新 Maven 项目2.3 清理本

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Java空指针异常NullPointerException的原因与解决方案

《Java空指针异常NullPointerException的原因与解决方案》在Java开发中,NullPointerException(空指针异常)是最常见的运行时异常之一,通常发生在程序尝试访问或... 目录一、空指针异常产生的原因1. 变量未初始化2. 对象引用被显式置为null3. 方法返回null

IDEA下"File is read-only"可能原因分析及"找不到或无法加载主类"的问题

《IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题》:本文主要介绍IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题,具有很好的参... 目录1.File is read-only”可能原因2.“找不到或无法加载主类”问题的解决总结1.File

C#使用MQTTnet实现服务端与客户端的通讯的示例

《C#使用MQTTnet实现服务端与客户端的通讯的示例》本文主要介绍了C#使用MQTTnet实现服务端与客户端的通讯的示例,包括协议特性、连接管理、QoS机制和安全策略,具有一定的参考价值,感兴趣的可... 目录一、MQTT 协议简介二、MQTT 协议核心特性三、MQTTNET 库的核心功能四、服务端(BR

使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案

《使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案》在SpringBoot应用中,我们经常使用​​@Cacheable​​注解来缓存数据,以提高应用的性能... 目录@Cacheable注解Redis时,Redis宕机或其他原因连不上,继续调用原方法的解决方案1