java - 在 java 中通过服务器和客户端之间的套接字传输 XML

标签 java xml sockets

您好,我想从服务器向客户端发送一个简单的 XML。

我在服务器端使用

TransformerFactory transformerFactory = TransformerFactory.newInstance();    
Transformer transformer = transformerFactory.newTransformer();   
DOMSource source = new DOMSource(doc);OutputStream bos = userSocket.getOutputStream();    
StreamResult result = new StreamResult(bos);
transformer.transform(source, result);
//here bos.close();

在客户端我使用

InputStream is = socket.getInputStream();
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder dBuilder;
dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);

当我在转换后关闭服务器端的 bos 时,XML 已成功传输。但是当我不这样做时 Document doc = dBuilder.parse(is); 一直在等待输入,我的程序卡住了。所以我的问题是如何在不关闭套接字的情况下在客户端和服务器之间成功传输 XML。谢谢 ;)

最佳答案

将您的 bos.close() 更改为 bos.flush()。

关于java - 在 java 中通过服务器和客户端之间的套接字传输 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16801139/

相关文章:

xml - 从内部调用模板 <xsl :for-each>

c# - 是否有 SSLStream 以外的 C# 安全套接字?

java - 获取每个月的计数

java - 无法使用 ApachePOI 打开 excel - 获取异常

java - 在 jlabel 背景上添加 jpanel

java - 将字符串转换为 w3c.dom.Element : XMLParseException:Start of root element expected

c# - 如何通过在XmlDocument或XDocument中传递xElement名称来获取绝对xpath?

c - 确定使用哪种 sockaddr 变体的正确方法是什么?

c - Nginx 代理模块和套接字描述符传递

java - Java Web应用程序中防止SQL注入(inject)攻击和XSS的方法