Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的套接字流_Java_Sockets_Tcp_Inputstream - Fatal编程技术网

Java中的套接字流

Java中的套接字流,java,sockets,tcp,inputstream,Java,Sockets,Tcp,Inputstream,当通过套接字连续写入/读取数据集时,如何识别1个数据集的结尾、下一个数据集的开始,以及整个数据集是否甚至在检索流中,而不仅仅是其中的一部分 为了简单起见,假设我通过套接字发送JSON字符串。我如何知道整个对象是否在那里,并从头到尾获取该对象,以便正确读取它?请记住,这一个后面可能有更多的对象。这取决于具体情况。如果您使用ObjectOutputStream,那么Java会为您解决这个问题。显然,这是特定于Java的,需要在另一端有一个ObjectInputStream。它还希望您将可序列化对象发

当通过套接字连续写入/读取数据集时,如何识别1个数据集的结尾、下一个数据集的开始,以及整个数据集是否甚至在检索流中,而不仅仅是其中的一部分


为了简单起见,假设我通过套接字发送JSON字符串。我如何知道整个对象是否在那里,并从头到尾获取该对象,以便正确读取它?请记住,这一个后面可能有更多的对象。

这取决于具体情况。如果您使用
ObjectOutputStream
,那么Java会为您解决这个问题。显然,这是特定于Java的,需要在另一端有一个
ObjectInputStream
。它还希望您将可序列化对象发送到另一端<但是,code>String是一个可序列化的对象,我通常希望任何数据结构都是可序列化的


否则,您必须自己考虑某种容器格式。现在,使用XML结构将数据序列化为XML也是非常常见的。如果你达到更高的层次,你就可以使用web服务了。

这要看情况而定。如果您使用
ObjectOutputStream
,那么Java会为您解决这个问题。显然,这是特定于Java的,需要在另一端有一个
ObjectInputStream
。它还希望您将可序列化对象发送到另一端<但是,code>String是一个可序列化的对象,我通常希望任何数据结构都是可序列化的


否则,您必须自己考虑某种容器格式。现在,使用XML结构将数据序列化为XML也是非常常见的。如果你达到更高的层次,你就可以使用web服务了。

你能提供一些代码吗?如果你使用Jackson,你可以告诉
JsonParser
在读取JSON值时不要自动关闭输入流。你能提供一些代码吗?如果你使用Jackson,您可以告诉
JsonParser
在读取JSON值时不要自动关闭输入流。“数据容器”可能是比“数据结构”更好的名称,但这个名称很久以前就在大学里出现了……很有趣,所以通过使用对象输入/输出流,他们可以确保我得到一个完整的对象,还是什么都没有?所以他们会确保整个对象都被写入和接收,所有这些都在一起?所以我不需要担心1/2对象?SerialVersionUID必须是相同的。这些类不需要相同,“实例”当然也不可能相同。您仍然需要使用正确的词语。您在谈论“类版本”时编写了“对象实例”。该类的“serialVersionUID”两端应该相同。你似乎不明白这里的意思。“数据容器”可能比“数据结构”更好,但这个名字很久以前就在大学里了……很有趣,所以通过使用对象输入/输出流,他们会确保我得到一个完整的对象还是什么都没有?所以他们会确保整个对象都被写入和接收,所有这些都在一起?所以我不需要担心1/2对象?SerialVersionUID必须是相同的。这些类不需要相同,“实例”当然也不可能相同。您仍然需要使用正确的词语。您在谈论“类版本”时编写了“对象实例”。该类的“serialVersionUID”两端应该相同。你似乎没有抓住重点。