0
我有一些嚴重的問題,我的android應用程序和我的java程序與數據報套接字之間進行通信。我的Android應用程序應該是在客戶端和有插座等:下面的代碼使用android應用程序和java程序之間的數據報套接字
try {
InetAddress ipAdress = InetAddress.getLocalHost();
int portNo = 4324;
DatagramSocket clientSocket = new DatagramSocket();
String sendString = "&%#!check_connection!#%&";
DatagramPacket packet = new DatagramPacket(sendString.getBytes(), sendString.length(), ipAdress, portNo);
clientSocket.send(packet);
// Receive response
} catch (Exception e) {
e.printStackTrace();
}
我的Java程序應該得到這樣的:
while(waitingForClient) {
try {
System.out.println("test 1");
DatagramPacket packet = new DatagramPacket(receiveData, receiveData.length);
System.out.println("test 2");
serverSocket.receive(packet);
System.out.println("test 3");
String getData = new String(packet.getData());
System.out.println(getData);
mainFrame.logArea.append(getData + "\n");
} catch (Exception e) {
e.printStackTrace();
}
}
所有的代碼在Android應用程序執行,但在我的Java程序的代碼,它只是達到「測試2」(從不打印出測試3)...
我的兩個Android設備與我的電腦連接到同一個路由器..
任何幫助,將不勝感激:)
但是,如果我想只能在本地使用,是不是getLocalHost()正確? 我也嘗試InetAddress.getByName(「127.0.0.1」); ..具有相同結果 – Langkiller
@ user68621'127.0.0.1'是本地主機地址,它是運行代碼的設備的地址。這不是任何連接到你的無線路由器的地址。您正在從android應用程序向android手機發送消息。 –
是啊,我知道,我只是認爲它應該這樣做,當兩端都連接到samme網絡......那麼如何獲得接收Java程序的IP地址? – Langkiller