我想做一個這樣的客戶端 - 服務器活動: 1.首先客戶端發送/寫入輸出流 2.服務器響應與一些數據將被讀取輸入流 3.收到數據後,客戶端再次向輸出流發送/寫入以響應數據已被接收從數據輸入流中讀取響應後,我可以寫入數據輸出流嗎?
現在,是否必須關閉輸出流並在執行第3步之前再次打開它? 如果有人可以給我一個片段,這將是非常有益的。謝謝
我想做一個這樣的客戶端 - 服務器活動: 1.首先客戶端發送/寫入輸出流 2.服務器響應與一些數據將被讀取輸入流 3.收到數據後,客戶端再次向輸出流發送/寫入以響應數據已被接收從數據輸入流中讀取響應後,我可以寫入數據輸出流嗎?
現在,是否必須關閉輸出流並在執行第3步之前再次打開它? 如果有人可以給我一個片段,這將是非常有益的。謝謝
你可以,如果你想,但你不需要。但是,在寫入OutputStream
以備緩衝時,您需要flush()
。
問題是要知道什麼時候閱讀。如果要讀取的字節數可用並且性能不成問題,則可以使用阻止呼叫readFully
。但這只是一種可能的策略。
謝謝,但在我第二次寫入流之前,我得到了RuntimeException Stream關閉的異常。我沒有做關閉() – Sirius 2010-05-19 06:04:18
我從其他評論中看到你正在做HTTP連接。如果是這樣,這是有道理的。瀏覽器不會使用相同的TCP鏈接發送兩個不同的POST。因此,基本上一旦第一個HTTP連接完成,它將被客戶端關閉(導致服務器在嘗試寫入該連接時拋出閉合流錯誤)。當客戶端發送第二個POST時,將啓動另一個TCP鏈接。 – 2010-05-20 01:13:06
如果是這樣,你有解決這個問題。我真的被卡住了,第二個POST請求 – Sirius 2010-05-20 02:32:51