Apache Tomcat - 来回流

时间:2013-01-19 22:28:49

标签: java tomcat stream

我有一个java客户端和一些Tomcat服务器 - Web服务器。我必须在同一台服务器上执行一系列操作。 我想到的是使用相同的tcp-session,使用以下链:  读,写,读,写...... - 在服务器端  写,读,写,读...... - 在客户端

问题 - 读取后,在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)

服务器代码:

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正在关闭流。 你同意吗? 无论如何要绕过这个?

谢谢。

1 个答案:

答案 0 :(得分:0)

HTTP仅是请求 - 响应。 但WebSockets允许客户端和服务器之间的全双工通信。

Apache Tomcat 7初步支持WebSockets。