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