我有一个简单的客户端服务器套接字设置。
这样:
Server.java。
connectionSocket = serverSocket.accept();
ObjectOutputStream objectStream = new ObjectOutputStream(connectionSocket.getOutputStream());
// first sends the object
objectStream.writeObject(testObject);
objectStream.flush(); // i dont really know
objectStream.reset();
// some code
// returns if the code was succesful
objectStream.writeBoolean(true);
Client.java
// initial object sent over the socket
object = (TestObject) in.readObject();
System.out.println(object.toString());
// true if the server test was correct (thread freezes here)
boolean b = in.readBoolean();
System.out.println("Test: " +b);
clientSocket.close();
这应该首先返回'testObject'将它的数据打印到屏幕然后返回true并将其打印到屏幕上。
然而,它能够完成第一部分,但是在in.readBoolean()中冻结线程;我知道流持有一个标题,保存有关发送字节的数据,所以我的假设是调用out.reset();或者out.flush();但这些似乎都没有做任何事情。我确定这是一个简单的答案,但我找不到任何我确切问题的例子。
干杯。
答案 0 :(得分:0)
咳咳。
在writeBoolean();
之后放置flush