当通过套接字连续写入/读取数据集时,如何识别1套的结尾,下一套的开始,以及如果整个套件甚至在流中用于检索,而不仅仅是一块呢?Java中的套接字流
让事情变得简单让我们说我正在通过套接字发送JSON字符串。我如何知道整个对象是否在那里,并从头到尾地获取该对象,以便我可以正确读取它?请记住,这个背后可能有更多的物体。
当通过套接字连续写入/读取数据集时,如何识别1套的结尾,下一套的开始,以及如果整个套件甚至在流中用于检索,而不仅仅是一块呢?Java中的套接字流
让事情变得简单让我们说我正在通过套接字发送JSON字符串。我如何知道整个对象是否在那里,并从头到尾地获取该对象,以便我可以正确读取它?请记住,这个背后可能有更多的物体。
这取决于。如果您使用ObjectOutputStream
,那么Java会为您处理此问题。显然这是Java特定的,并且需要你在另一边有一个ObjectInputStream
。它也期望你发送可序列化的对象到另一端。 String
然而,它是一个可序列化的对象,我一般会期望任何数据结构都是可序列化的。
否则,你将不得不自己考虑某种容器格式。现在,使用XML结构将数据串行化也是很常见的。如果你达到更高的水平,你就可以使用网络服务。
你能提供一些代码吗? – 3yanlis1bos
如果您使用Jackson,您可以告诉JsonParser在读取JSON值时不会自动关闭输入流。 – fge