我正在尝试将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,但无济于事。有什么想法可以通过修复这个代码或有新的想法来解决这个问题吗?提前谢谢。
恐怕我真的不明白你想做什么。你把XML文件发送到一个地址,这很公平,但为什么你会自动假设目的地知道如何理解和创建XML格式的回复?什么是服务器端实现?
如果有这样一个实现,而你没有收到数据,那么这方面一定有问题,你能发布它的代码吗?
服务器应该向您发回什么?问题是,您向服务器发送一个XML,并希望同时从服务器接收输入。但是服务器的响应可能需要一些时间。但我想在这一点上,你的输入流是关闭的,或者你不再听了。一个简单的检查解决方案是将所有内容都放在while循环中,这样你就会看到你的服务器是否回答了(稍后)。。。您还可以使用wireshark监听服务器的NIC。也许你的服务器没有发送任何信息?