我想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);
Run Code Online (Sandbox Code Playgroud)
客户
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)
Run Code Online (Sandbox Code Playgroud)