0
我有一個java客戶端和一些Tomcat服務器 - Web服務器。我必須在同一臺服務器上執行一系列操作。 我想到的是使用相同的TCP會話,使用以下鏈: 讀,寫,讀,寫...在服務器端 寫,讀,寫,讀...在客戶端Apache Tomcat - 來回流
問題 - 讀取之後,在tomcat服務器上寫入 - 下一次讀取獲取-1或EOFException。
客戶端代碼:
java.net.URL u = new URL("http", "127.0.0.1", 8080, "/Dyno/BasicServlet");
HttpUrlConnection huc = (HttpURLConnection)u.openConnection();
huc.setRequestMethod("POST");
huc.setDoOutput(true);
huc.connect();
os = huc.getOutputStream();
byte[] b = info();
os.write(b)
os.flush();
is = huc.getInputStream();
byte[] b2 = new byte[10];
is.read(b2);
byte[] b = info(b2);
os.write(b)
Server代碼:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletInputStream is = request.getInputStream();
ServletOutputStream os = response.getOutputStream();
byte[] clientMsg = new byte[10];
is.read(clientMsg);
serverMsg = respond(clientMsg);
os.write(serverMsg)
os.flush();
is.read(); //Here I get -1
我的理論是Tomcat正在關閉流。 你同意嗎? 無論如何要繞過這個?
謝謝。
我認爲一旦你刷新了響應,請求就無效了。 – Stefan
servlets獨有?來回在插座上工作。 – user967710
沒有它的http問題:請求 - >響應 - >完成。請求 - >響應 - >完成。你究竟想要歸檔什麼? – Stefan