0

我正在尝试将 xml 发送到 IP。我正在使用以下代码执行此操作:

String sMessage = "<SERVER><CONNECT><IP>192.168.10.14</IP><CLIENT_ID>123</CLIENT_ID></CONNECT></SERVER>";
Socket socket = new Socket("192.168.252.148", 34543);
System.out.println("socket connected---: "+socket.isConnected());
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
InputStream in = socket.getInputStream();
out.println(sMessage);
byte[] buffer = new byte[in.available()];
in.read(buffer);
String rMsg = new String(buffer);
System.out.println("rMsg: "+rMsg);
out.close();
in.close();
socket.close();

rMsg 始终为空。套接字连接为真。为什么我没有得到回复。我试图将 InputStream 更改为 BufferedInputStream 但没有帮助。有什么想法可以通过修复此代码或提出新想法来解决此问题?提前致谢。

4

2 回答 2

0

恐怕我真的不明白你想做什么。您将 XML 文件发送到某个地址,这很公平,但为什么您会自动假设目的地知道如何理解和创建 XML 格式的回复?什么是服务器端实现?

如果有这样的实现并且您没有收到数据,那么那肯定有问题,您可以从中发布代码吗?

于 2013-06-28T11:24:20.593 回答
0

服务器应该给你发回什么?问题是您将 XML 发送到服务器并希望同时从服务器接收输入。但是服务器的响应可能需要一些时间。但我想此时您的输入流已关闭,或者您不再听它了。一个简单的检查解决方案是将所有内容放在一个while循环中,这样您就可以查看您的服务器是否回答(稍后)......您还可以使用wireshark收听服务器的NIC。也许您的服务器不发送任何内容?

于 2013-06-28T15:18:46.763 回答