歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android 模擬器和PC用sockets通訊

之前一直會用sockets來實現emulator和PC進行通訊,卡了幾天,最後請教其他人終於可以連接了。  錯誤原因是在IP和端口,IP要用本機IP(在CMD輸入ipconfig,注意:每次開機本機IP都不同,ADSL是動態IP),端口用emulator的名稱,5554或5556.java sever文件要另外建java工程運行,在Android工程運行不了java(run application)
客戶端代碼:

 

Java代碼
  1. package com.yarin.android.Examples_08_04;   
  2.   
  3. import java.io.BufferedReader;   
  4. import java.io.BufferedWriter;   
  5. import java.io.InputStreamReader;   
  6. import java.io.OutputStreamWriter;   
  7. import java.io.PrintWriter;   
  8. import java.net.InetAddress;   
  9. import java.net.Socket;   
  10.   
  11. import android.app.Activity;   
  12. import android.os.Bundle;   
  13. import android.util.Log;   
  14. import android.view.View;   
  15. import android.view.View.OnClickListener;   
  16. import android.widget.Button;   
  17. import android.widget.EditText;   
  18. import android.widget.TextView;   
  19.   
  20. public class Activity01 extends Activity   
  21. {   
  22.     private final String        DEBUG_TAG   = "Activity01";   
  23.        
  24.     private TextView    mTextView=null;   
  25.     private EditText    mEditText=null;   
  26.     private Button      mButton=null;   
  27.     /** Called when the activity is first created. */  
  28.     @Override  
  29.     public void onCreate(Bundle savedInstanceState)   
  30.     {   
  31.         super.onCreate(savedInstanceState);   
  32.         setContentView(R.layout.main);   
  33.            
  34.         mButton = (Button)findViewById(R.id.Button01);   
  35.         mTextView=(TextView)findViewById(R.id.TextView01);   
  36.         mEditText=(EditText)findViewById(R.id.EditText01);   
  37.            
  38.         //登陸   
  39.         mButton.setOnClickListener(new OnClickListener()   
  40.         {   
  41.             public void onClick(View v)   
  42.             {   
  43.                 Socket socket = null;   
  44.                 String message = mEditText.getText().toString() + "\r\n";    
  45.                 try    
  46.                 {      
  47.                     //創建Socket   
  48.                     socket = new Socket("116.29.27.138",5554); //查看本機IP,每次開機都不同   
  49.                     //socket=new Socket("192.168.1.110",50000);   
  50.                     //向服務器發送消息   
  51.                     PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);         
  52.                     out.println(message);    
  53.                        
  54.                     //接收來自服務器的消息   
  55.                     BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));    
  56.                     String msg = br.readLine();    
  57.                        
  58.                     if ( msg != null )   
  59.                     {   
  60.                         mTextView.setText(msg);   
  61.                     }   
  62.                     else  
  63.                     {   
  64.                         mTextView.setText("數據錯誤!");   
  65.                     }   
  66.                     //關閉流   
  67.                     out.close();   
  68.                     br.close();   
  69.                     //關閉Socket   
  70.                     socket.close();    
  71.                 }   
  72.                 catch (Exception e)    
  73.                 {   
  74.                     // TODO: handle exception   
  75.                     Log.e(DEBUG_TAG, e.toString());   
  76.                 }   
  77.             }   
  78.         });   
  79.     }   
  80. }  
 
  1. package com.yarin.android.Examples_08_04;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.BufferedWriter;  
  5. import java.io.InputStreamReader;  
  6. import java.io.OutputStreamWriter;  
  7. import java.io.PrintWriter;  
  8. import java.net.InetAddress;  
  9. import java.net.Socket;  
  10.   
  11. import android.app.Activity;  
  12. import android.os.Bundle;  
  13. import android.util.Log;  
  14. import android.view.View;  
  15. import android.view.View.OnClickListener;  
  16. import android.widget.Button;  
  17. import android.widget.EditText;  
  18. import android.widget.TextView;  
  19.   
  20. public class Activity01 extends Activity  
  21. {  
  22.     private final String        DEBUG_TAG   = "Activity01";  
  23.       
  24.     private TextView    mTextView=null;  
  25.     private EditText    mEditText=null;  
  26.     private Button      mButton=null;  
  27.     /** Called when the activity is first created. */  
  28.     @Override  
  29.     public void onCreate(Bundle savedInstanceState)  
  30.     {  
  31.         super.onCreate(savedInstanceState);  
  32.         setContentView(R.layout.main);  
  33.           
  34.         mButton = (Button)findViewById(R.id.Button01);  
  35.         mTextView=(TextView)findViewById(R.id.TextView01);  
  36.         mEditText=(EditText)findViewById(R.id.EditText01);  
  37.           
  38.         //登陸   
  39.         mButton.setOnClickListener(new OnClickListener()  
  40.         {  
  41.             public void onClick(View v)  
  42.             {  
  43.                 Socket socket = null;  
  44.                 String message = mEditText.getText().toString() + "\r\n";   
  45.                 try   
  46.                 {     
  47.                     //創建Socket   
  48.                     socket = new Socket("116.29.27.138",5554); //查看本機IP,每次開機都不同   
  49.                     //socket=new Socket("192.168.1.110",50000);   
  50.                     //向服務器發送消息   
  51.                     PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);        
  52.                     out.println(message);   
  53.                       
  54.                     //接收來自服務器的消息   
  55.                     BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));   
  56.                     String msg = br.readLine();   
  57.                       
  58.                     if ( msg != null )  
  59.                     {  
  60.                         mTextView.setText(msg);  
  61.                     }  
  62.                     else  
  63.                     {  
  64.                         mTextView.setText("數據錯誤!");  
  65.                     }  
  66.                     //關閉流   
  67.                     out.close();  
  68.                     br.close();  
  69.                     //關閉Socket   
  70.                     socket.close();   
  71.                 }  
  72.                 catch (Exception e)   
  73.                 {  
  74.                     // TODO: handle exception   
  75.                     Log.e(DEBUG_TAG, e.toString());  
  76.                 }  
  77.             }  
  78.         });  
  79.     }  
  80. }  
Copyright © Linux教程網 All Rights Reserved