2011-05-18 114 views
0

我有一个工作的服务器应用程序在JAVA(多线程)和一个工作的客户端控制台应用程序。Android客户端套接字。 UnknowHostException

现在,我试图做一个Android客户端,但是使用Eclipse和Android模拟器我无法连接到我的本地服务器....

  • 是,我使用10.0.2.2作为我服务器IP。
  • 是的,清单文件是通过INTERNET权限修改的。

     import java.io.BufferedReader; 
         import java.io.BufferedWriter; 
         import java.io.IOException; 
         import java.io.InputStreamReader; 
         import java.io.OutputStreamWriter; 
         import java.io.PrintWriter; 
         import java.net.Socket; 
         import java.net.UnknownHostException; 
    
         import android.app.Activity; 
         import android.os.Bundle; 
         import android.view.View; 
         import android.view.View.OnClickListener; 
         import android.widget.Button; 
         import android.widget.ImageButton; 
         import android.widget.TextView; 
         import android.widget.Toast; 
    
         public class RealApp extends Activity implements OnClickListener { 
    
          private PrintWriter pw; 
          private BufferedReader in; 
          private boolean connected = false; 
    
          public void onCreate(Bundle savedInstanceState) 
          { 
           super.onCreate(savedInstanceState); 
           setContentView(R.layout.main); 
    
           if (!connected) 
           { 
            Thread cThread = new Thread(new ClientThread()); 
            cThread.start(); 
           } 
    
    
          } 
    
    
    
          public class ClientThread implements Runnable { 
    
           public void run() { 
    
            { 
    
             Socket skt = null; 
             try { 
              skt = new Socket("l0.0.2.2", 1337); 
             } catch (UnknownHostException e1) { 
              // TODO Auto-generated catch block 
              e1.printStackTrace(); 
             } catch (IOException e1) { 
              // TODO Auto-generated catch block 
              e1.printStackTrace(); 
             } 
    
             String s = ""; 
             String inString = ""; 
    
             BufferedReader in = null; 
             try { 
              in = new BufferedReader(new InputStreamReader(skt.getInputStream())); 
             } catch (IOException e2) { 
              // TODO Auto-generated catch block 
              e2.printStackTrace(); 
             } 
             PrintWriter pw = null; 
             try { 
              pw = new PrintWriter(skt.getOutputStream(), true); 
             } catch (IOException e1) { 
              // TODO Auto-generated catch block 
              e1.printStackTrace(); 
             } 
    
    
             do 
             { 
              try { 
               inString = in.readLine(); 
              } catch (IOException e) { 
               // TODO Auto-generated catch block 
               e.printStackTrace(); 
              } 
    
    
             } 
             while(!s.equals("quit")); 
    
    
             pw.close(); 
             try { 
              skt.close(); 
             } catch (IOException e) { 
              // TODO Auto-generated catch block 
              e.printStackTrace(); 
             } 
    
    
    
            } 
           } 
          }} 
    

在调试,在Log窗口我可以注意到一个System.err的消息,为10.0.2.2一个UnknowHostException。

+0

您没有指定您正在测试的内容,但请记住,10.0.2.2别名仅适用于模拟器,而不适用于实际的手机。 – 2011-05-18 06:45:14

回答