gpt4 book ai didi

java objectinputstream中的readObject如何知道要读取多少字节?

转载 作者:行者123 更新时间:2023-12-01 15:11:19 25 4
gpt4 key购买 nike

在套接字I/O中,我可以知道objectinputstream readObject如何知道要读取多少字节?内容长度是封装在字节本身内还是只是读取缓冲区本身中的所有可用字节?

我问这个是因为我指的是 Python 套接字操作方法,它说

Now if you think about that a bit, you’ll come to realize a fundamental truth of sockets: messages must either be fixed length (yuck), or be delimited (shrug), or indicate how long they are (much better), or end by shutting down the connection. The choice is entirely yours, (but some ways are righter than others).

但是在另一个SO answer ,@DavidCrawshaw 提到`

So readObject() does not know how much data it will read, so it does not know how many objects are available.

我很想知道它是如何工作的......

最佳答案

您过度解释了您引用的答案。 readObject() 不知道它会提前读取多少字节,但是一旦它开始读取,它只是根据协议(protocol)解析输入流,即由标签、原始值和对象组成,对象又由标签、原始值和其他对象组成。它不必提前知道。考虑一下 XML 的类似情况。您不知道文档会提前多长时间,也不知道每个元素,但您知道何时读完所有内容,因为协议(protocol)会告诉您。

关于java objectinputstream中的readObject如何知道要读取多少字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12312042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com