我的目標是基於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