如何获取 DataInputStream 中的数据量? - Java

How to get amount of data in a DataInputStreaam? - Java

我目前正在编写我正在开发的多人游戏的服务器端。而且我需要知道服务器套接字上接收了多少数据,以便我可以循环遍历所有这些数据。例如,如果我执行 writeUTF() 两次,我将如何在不出现异常的情况下循环执行这些操作?起初,我尝试使用 EOFException 进行 try catch。但你似乎无法抓住那些。那么,如何获取 DataInputStream 中接收的数据量?谢谢! -特伦特

P.S。如果您需要代码,请告诉我,我会把它放在这里!

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

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

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

  • 在敲键盘和编写代码之前,请考虑您的应用架构、组件、功能以及它们之间的关系。