2013-02-21 149 views
0

我写Java代码在Eclipse中创建Android浏览器按下浏览器的Go按钮时与服务器通过套接字进行通信。我看过几个例子,但仍然不知道我的代码有什么问题。我有正确的IP地址,并且在代码的服务器和客户端使用相同的端口号。下面是客户端代码减去import语句:连接Android手机服务器套接字使用Java

public class MainActivity3 extends Activity { 

    EditText URLText; 

    Button GoButton; 
    WebView Browser; 
    int SERVERPORT = 33333; 
    String servernum = "10.215.23.109"; 
    private boolean connected = true; 

    private class MyWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return true; 
     } 
    } 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main_activity3); 

     URLText = (EditText) findViewById(R.id.URL); 
     GoButton = (Button) findViewById(R.id.Go); 
     Browser = (WebView) findViewById(R.id.WebEngine); 
     Browser.loadUrl("http://www.google.co.in/"); 

     GoButton.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 

       Browser.setWebViewClient(new MyWebViewClient()); 

       Thread cThread = new Thread(new ClientThread()); 
       cThread.start(); 

       Browser.loadUrl("http://" + URLText.getText().toString()); 

      } 
     }); 
    } 

    public class ClientThread implements Runnable { 
     @Override 
     public void run() { 

      try { 

       Log.d("ClientActivity", "C: Connecting..."); 
       Socket socket = new Socket(servernum, SERVERPORT); 
      } catch (UnknownHostException e) { 
       System.err.println(e); 
      } catch (IOException e) { 
       System.err.println(e); 
      } 
     } 

     public boolean onCreateOptionsMenu(Menu menu) { 
      getMenuInflater().inflate(R.menu.activity_main_activity3, menu); 
      return true; 
     } 
    } 
} 

这是服务器代码:

public static void main(String[] args) throws IOException { 
    int port = 33334; 
    ServerSocket serverSocket = new ServerSocket(port); 
    System.out.println("Server socket created at port # "+ port); 
    Socket socket = serverSocket.accept(); 
    System.out.println("Socket accepted"); 
    System.out.println("Output created"); 

    socket.close(); 
    serverSocket.close(); 
} 

这基本上是一个测试代码,以确保手机将连接到服务器。当我在我的Linux终端上运行它,它只输出“端口#33334创建的服务器套接字”,等待手机与从未发生过的端口进行连接,即使我按下去了多次的浏览器,这使我相信我的代码的客户端有问题。

谁能帮我解决这个问题?

回答

0

这看起来非常相似this post

而是创建一个web视图,你可以使用一个DefaultHttpClient直接与服务器进行通信:

try{ 
    DefaultHttpClient client = new DefaultHttpClient(); 
    HttpGet request = new HttpGet("http://10.215.23.109:33333"); 
    HttpResponse response = client.execute(request); 
}catch(Exception e){ 
    // Handle the exception 
    e.printStackTrace(); 
} 
+0

喜。我想登录到一个网站,并给我main_page的html。我应该做什么。请帮帮我。谢谢。 – karimkhan 2015-12-07 20:31:44

相关问题