Java - 如何获取 DataInputStream 中的字节数?

问题描述 投票:0回答:1

我目前正在编写我正在开发的多人游戏的服务器端。我需要知道服务器套接字上正在接收多少数据,以便我可以循环访问每个字节。例如,如果我调用

writeUTF()
两次,我将如何循环调用每次而不出现异常?

我的第一次尝试是简单地尝试抓住一个

EOFException
。但你似乎无法抓住这些。那么,如何获取
DataInputStream
中接收到的数据量?如果您需要代码示例,请告诉我,我将相应地编辑问题。

java networking server cycle multiplayer
1个回答
1
投票

从套接字读取数据的调用将被阻塞,直到收到数据为止。没有办法知道流中有多少数据。您有多种方法可以解决这个问题,以下是一些建议:

  • 在您的通信协议中,包含长度字段或一些指示长度的命令代码。

  • 使用异步读写或者使用专门处理通信的线程。

  • 在使用键盘和编写代码之前,请考虑一下您的应用程序架构、其组件、它们的功能以及它们之间的相互关系。

© www.soinside.com 2019 - 2024. All rights reserved.