InputStream
含まれている XML をクライアントからサーバーに送信したいと考えています。上記のサーバーは、XML ストリームを使用して操作し、Streaming API for XML (StAX)
それをクライアントに送り返します。
XML をサーバーに送信すると、クライアントは応答を受け取りますが、サーバーがクライアントからのInputStream
フォームの読み取りを終了しないため、終了しません。しかし、サーバーがSystem.out
何かを送信する代わりに入力をダンプしているだけの場合、読み取りは終了します...
編集IOUtils.copy()
クライアント上の2つの別々のスレッドで実行されていることを忘れてい
これを再現するためのコードを次に示します。サーバー上のStAX
部分を置き換えました。IOUtils.copy()
サーバ
ServerSocket serverSocket = new ServerSocket(port);
Socket clientSocket = serverSocket.accept();
InputStream in = clientSocket.getInputStream();
OutputStream out = clientSocket.getOutputStream();
IOUtils.copy(in, out);
クライアント
Socket socket = new Socket(host, port);
FileInputStream fin = new FileInputStream(file);
OutputStream out = socket.getOutputStream();
IOUtils.copy(fin, out)
InputStream in = socket.getInputStream();
IOUtils.copy(in, System.out)