我的目标是基于Java套接字 实现一个简单的请求 - 响应模式,用于从服务器请求一个对象。Java套接字:请求 - 响应模式与对象流
它应该是这样的:
- 客户端发送消息到服务器,服务器计算。根据他收到的 ,调用某个函数。这部分工作。
- 服务器将请求的数据写入ObjectOutputStream。这也适用,至少 我没有收到错误。
- 客户端从输入流中读取数据,直到他收到一条CLOSE消息,这使得 程序退出while循环。这不起作用,因为它应该。
这里有一些关键代码片段:
// Client (Sending request) *** WORKS
objectOutputStream.writeInt(GET_OBJECT);
objectOutputStream.flush();
// Server (After receipt of the message) *** WORKS
objectOutputStream.writeInt(object);
objectOutputStream.writeInt(CLOSE);
// Client (Reading the answer from the server) *** WRONG
while(true){
int i = objectInputStream.readInt();
if(i == CLOSE)
break;
}
它是什么返回了'i'的价值?如果有的话 – greedybuddha
你好!它没有返回。但是,正如Marko注意到我已经忘记了服务器上的flush()。 – user1812379