Android:接受ObjectInputStream并在不读取的情况下传递它

Android:接受ObjectInputStream并在不读取的情况下传递它,android,sockets,serialization,Android,Sockets,Serialization,我使用getObjectOutputStream通过套接字发送对象 但是,在服务器端(接收该对象),我希望接受它的原样,并将其传递给另一个应用程序 在服务器端,如果我使用getObjectInputStream,它会抛出ClassNotFound异常,因为那里没有对象的类。那么,我如何简单地接收对象(或其ByTestStream)并将其原样传递给另一个应用程序?只需使用套接字输入和输出流上的经典复制循环复制字节即可: while ((count = in.read(buffer)) > 0

我使用getObjectOutputStream通过套接字发送对象

但是,在服务器端(接收该对象),我希望接受它的原样,并将其传递给另一个应用程序


在服务器端,如果我使用getObjectInputStream,它会抛出ClassNotFound异常,因为那里没有对象的类。那么,我如何简单地接收对象(或其ByTestStream)并将其原样传递给另一个应用程序?

只需使用套接字输入和输出流上的经典复制循环复制字节即可:

while ((count = in.read(buffer)) > 0)
{
    out.write(buffer, 0, count);
}

<>不要使用对象流作为中间人。您的解决方案能让我最终使用getObjectInputStream接收完整的对象吗?我这样问是因为写作是在循环中完成的,而不是“一次完成”。当然,这就是我在回答你的问题时提出的原因。我不理解“在循环中写入”这一部分,但只要正确传输所有字节,就不可能有问题。好的。在从客户端发送时,我是否也必须使用您的代码,还是可以通过ObjectOutputStream发送?(我认为在循环中写入可能会以burts形式发送数据,这可能会以不同的方式处理,而不是一次尝试)。我不理解这个问题。如果要发送对象,必须在初始发送方使用ObjectOutputStream,但只有您知道是否确实需要发送对象。我也不理解你关于突发事件的理论。实际上,我是1)通过套接字向服务器发送一个对象,2)服务器接收它,然后3)将它发送到同一虚拟机中的另一个应用程序。因此,根据您的建议,我将使用ObjectInputStream本身传递对象,然后使用您的代码从服务器传递到应用程序。忘记那些爆发吧。