2013-06-28 50 views
0

我想發送XML到IP。我正在做以下代碼:如何將xml發送到IP並在android中獲取xml響應?

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,但它沒有幫助。任何解決這個問題的想法都是通過修改這個代碼或者通過創建新想法來解決的提前致謝。

回答

0

恐怕我真的不明白你在做什麼。您將XML文件發送到一個地址,這很公平,但爲什麼您會自動假定目的地知道如何理解並創建XML格式的答覆?什麼是服務器端實現?

如果存在這樣的實現並且您沒有收到數據,那麼在這方面肯定會出現問題,您可以從中發佈代碼嗎?

0

服務器應該將您發回給您什麼?問題是,你發送一個XML到服務器,並希望從服務器同時接收輸入。但是服務器的響應可能需要一些時間。但我猜這時候你的輸入流已經關閉了,或者你不再聽。一個簡單的解決方案就是檢查這個問題是否將所有東西都放在while循環中,這樣你就可以看到你的服務器是否應答(稍後)......你也可以用wireshark聽你的服務器的網卡。也許你的服務器不發送任何東西?

相關問題