我想将InputStream
包含 XML 从客户端发送到服务器。所述服务器使用 XML 流操作Streaming API for XML (StAX)
并将其发送回客户端。
我设法将 XML 发送到服务器,客户端收到答案,但没有退出,因为服务器从未完成读取InputStream
客户端的表单。但是当服务器只是将输入转储System.out
而不是发送某些东西时,读取完成......
编辑我忘了提到它IOUtils.copy()
在客户端上的两个单独的线程中运行。
这里有一些代码可以重现这一点,我已经在服务器上替换了该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)