0

我对最新版本的 KryoNet 有一个非常奇怪的问题。我正在从我的客户端和服务器发送一个非常简单的数据包,并得到缓冲区下溢异常。我还有 4 个其他已注册的数据包,所有这些数据包都可以完美运行。遇到缓冲区下溢问题的数据包有两个字符串变量,并且已经使用 TCP 和 UPD 进行了测试。当数据包发送得相当快时发生异常,在一秒钟内至少发送两次。考虑到我还有其他每秒更新 60 次的数据包,这很奇怪。

这个问题与我研究过的其他缓冲区下溢问题非常不同。这个问题不是由发送非常大的数据引起的,因为数据包只有两个字符串变量。这个问题也不是由小程序或其他配置引起的,因为我将它作为当前使用 LibGDX 的应用程序运行。

你们对可能导致此问题的原因有任何想法吗?

谢谢你,我希望你有一个愉快的假期,-杰克

来源:https ://github.com/SirTrashyton/SquareContest (我遇到问题的课程是 Packet05Chat)

4

1 回答 1

0

经过几个小时的测试,我找到了解决方案。事实证明,KryoNet 无法区分对象类型。当我向服务器发送一个包含类似于另一个对象的字符串时,即整数、字符等,KryoNet 会非常奇怪地解析字符串并产生错误。

这很容易通过在消息中添加一个后缀来解决,像“OK”这样的随机后缀。然后,当它被服务器发回时,我会用任何内容替换“OK”。

希望这可以帮助其他遇到此错误的人。

于 2015-12-29T04:59:44.080 回答