2014-02-22 163 views
1

我不熟悉java,我正在嘗試執行兩個彼此通信的Android應用程序(客戶端應用程序和服務器應用程序)。在客戶端應用程序,我想顯示的服務器IP,但它不具有這方面的工作:客戶端和服務器Android套接字連接

 for(i=1;i<=254;i++) 
      { s1=partialip+String.valueOf(i); 
    //partialip has the form: "a.b.c." 
    //in s1 there are all possible Server's IPs : "192.168.1.1" or "192.168.1.2"...  


       InetAddress serv = InetAddress.getByName(s1); 
       Socket socket = new Socket(serv, 5000); 
       if(socket.isConnected()==true) 
       { 
          String server_ip = new String(s1); 
        text2.setText("Server IP: " + server_ip); 
          break; 
       } 




     } 

我會很感激,如果有人能幫助我。

+0

調試您的應用程序以確保此套接字連接是否返回true/false –

+0

如果未連接,則除非已指定小超時,否則'new Socket()'需要相當長的時間(大約2-3分鐘)。所以考慮到你這樣做的254個地址的事實,最壞的情況是254 * 3分鐘的等待,如果根本沒有連接 – mangusta

+0

程序邏輯是正確的,雖然 – mangusta

回答

0

要在本地網絡上查找服務器,最好使用UDP廣播(DatagramSocket)。

相關問題