2014-02-06 49 views
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设备与我的电脑连接到同一个路由器..

任何帮助,将不胜感激:)

回答

0
InetAddress ipAdress  = InetAddress.getLocalHost(); 

您的Android应用程序试图连接到自身,通过在计算机的IP地址上运行Java程序

+0

但是,如果我想只能在本地使用,是不是getLocalHost()正确? 我也尝试InetAddress.getByName(“127.0.0.1”); ..具有相同结果 – Langkiller

+0

@ user68621'127.0.0.1'是本地主机地址,它是运行代码的设备的地址。这不是任何连接到你的无线路由器的地址。您正在从android应用程序向android手机发送消息。 –

+0

是啊,我知道,我只是认为它应该这样做,当两端都连接到samme网络......那么如何获得接收Java程序的IP地址? – Langkiller

相关问题