Java套接字:具有对象流的请求 - 响应模式

时间:2013-05-29 19:24:22

标签: java sockets serialization

我的目标是实现一个基于Java套接字的简单请求 - 响应模式 用于从服务器请求对象。

它应该像这样工作:

  1. 客户端向服务器发送消息,服务器评估该消息。取决于什么 他收到了,某个功能被称为。这部分有效。
  2. 服务器将请求的数据写入ObjectOutputStream。这至少也有效 我没有收到错误。
  3. 客户端从输入流中读取数据,直到收到CLOSE消息为止 程序退出while循环。这不会起作用。
  4. 以下是一些关键代码片段:

    // 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;   
    }
    

1 个答案:

答案 0 :(得分:2)

  1. 您在客户端有flush,服务器收到该消息;
  2. 您在服务器端缺少flush,并且客户端未收到该消息。
  3. 我注意到这两个事实的模式......