我在 Lua 中为游戏编写了一个插件,该插件通过 UDP 数据包(512 字节)将玩家信息发送到远程服务器,该服务器从数据包中读取数据并将所有玩家信息聚合到一个 xml 文件中(然后可以在所有玩家都可以上网,这样他们就可以看到彼此的当前状态)。
我已经使用 DatagramSocket 用 Java 对服务器进行了编程来处理传入的数据包,但是我注意到了一些奇怪的行为。一段时间后,DatagramSocket 似乎暂时停止接受连接约 10-12 秒,然后再次恢复正常行为(我可以看到没有抛出异常)。客户端发送数据包的频率与此行为发生的速度之间肯定存在关系。如果我增加客户端的更新频率,DatagramSocket 将更快地“失败”。
值得一提的是,收到的每个数据包都会产生一个线程来处理数据包中的数据。如果它有所作为,我将在 linux 上运行服务器!
有谁知道是什么导致这种行为发生?
安德鲁