Socket網絡通信例子

From:http://www.cnblogs.com/qingblog/archive/2012/07/25/2607924.html

 1 package com.Aina.Android;  
  2 import java.io.BufferedReader;   
  3 import java.io.BufferedWriter;   
  4 import java.io.InputStreamReader;   
  5 import java.io.OutputStreamWriter;   
  6 import java.io.PrintWriter;   
  7 import java.net.Socket;   
  8   
  9 import android.app.Activity;   
 10 import android.app.AlertDialog;   
 11 import android.content.DialogInterface;   
 12 import android.os.Bundle;   
 13 import android.os.Handler;   
 14 import android.os.Message;   
 15 import android.util.Log;   
 16 import android.view.View;   
 17 import android.widget.Button;   
 18 import android.widget.EditText;   
 19 import android.widget.TextView;   
 20   
 21 public class Test extends Activity implements Runnable {   
 22     /** Called when the activity is first created. */  
 23     private TextView tv_msg = null;   
 24     private EditText ed_msg = null;   
 25     private Button btn_send = null;   
 26     private Button btn_login = null;   
 27     private static final String HOST = "192.168.0.132";   
 28     private static final int PORT = 9999;   
 29     private Socket socket = null;   
 30     private BufferedReader in = null;   
 31     private PrintWriter out = null;   
 32     private String content = "";   
 33   
 34     @Override  
 35     public void onCreate(Bundle savedInstanceState) {   
 36         super.onCreate(savedInstanceState);   
 37         setContentView(R.layout.main);   
 38         tv_msg = (TextView) this.findViewById(R.id.TextView);   
 39         ed_msg = (EditText) this.findViewById(R.id.EditText01);   
 40         btn_login = (Button) this.findViewById(R.id.Button01);   
 41         btn_send = (Button) this.findViewById(R.id.Button02);   
 42         try {   
 43             socket = new Socket(HOST, PORT);   
 44             in = new BufferedReader(new InputStreamReader(socket   
 45                     .getInputStream()));   
 46             out = new PrintWriter(new BufferedWriter(   
 47                     new OutputStreamWriter(socket.getOutputStream())),   
 48                     true);   
 49         } catch (Exception ex) {   
 50             ex.printStackTrace();   
 51             ShowDialog("登陸異常:" + ex.getMessage());   
 52         }   
 53         btn_send.setOnClickListener(new Button.OnClickListener() {   
 54   
 55             public void onClick(View v) {   
 56                 // TODO Auto-generated method stub  
 57                 String msg = ed_msg.getText().toString();   
 58                 if (socket.isConnected()) {   
 59                     if (!socket.isOutputShutdown()) {   
 60                         out.println(msg);   
 61                     }   
 62                 }   
 63             }   
 64   
 65         });   
 66         new Thread(this).start();   
 67     }   
 68   
 69     public void ShowDialog(String msg) {   
 70         new AlertDialog.Builder(this).setTitle("提示").setMessage(msg)   
 71                 .setPositiveButton("OK", new DialogInterface.OnClickListener() {   
 72   
 73                     public void onClick(DialogInterface dialog, int which) {   
 74                         // TODO Auto-generated method stub  
 75   
 76                     }   
 77   
 78                 }).show();   
 79     }   
 80   
 81     public void run() {   
 82         try {   
 83             while (true) {   
 84                 if(socket.isConnected()){   
 85                     if(!socket.isInputShutdown()){   
 86                         if ((content = in.readLine()) != null) {   
 87                             Log.i("TAG", "++ "+content);   
 88                             content += "\n";   
 89                             mHandler.sendMessage(mHandler.obtainMessage());   
 90                         }else{   
 91                                
 92                         }   
 93                     }   
 94                 }   
 95                    
 96             }   
 97         } catch (Exception ex) {   
 98             ex.printStackTrace();   
 99         }   
100     }   
101   
102     public Handler mHandler = new Handler() {   
103         public void handleMessage(Message msg) {   
104             super.handleMessage(msg);   
105             Log.i("TAG", "-- "+msg);   
106             tv_msg.setText(tv_msg.getText().toString() + content);   
107         }   
108     };   
109 } 
複製代碼

 

服務端程序:

  
  1.  package com.Aina.Android;  
  2. import java.io.BufferedReader;   
  3. import java.io.BufferedWriter;   
  4. import java.io.InputStreamReader;   
  5. import java.io.OutputStreamWriter;   
  6. import java.io.PrintWriter;   
  7. import java.net.Socket;   
  8.   
  9. import android.app.Activity;   
  10. import android.app.AlertDialog;   
  11. import android.content.DialogInterface;   
  12. import android.os.Bundle;   
  13. import android.os.Handler;   
  14. import android.os.Message;   
  15. import android.util.Log;   
  16. import android.view.View;   
  17. import android.widget.Button;   
  18. import android.widget.EditText;   
  19. import android.widget.TextView;   
  20.   
  21. public class Test extends Activity implements Runnable {   
  22.     /** Called when the activity is first created. */  
  23.     private TextView tv_msg = null;   
  24.     private EditText ed_msg = null;   
  25.     private Button btn_send = null;   
  26.     private Button btn_login = null;   
  27.     private static final String HOST = "192.168.0.132";   
  28.     private static final int PORT = 9999;   
  29.     private Socket socket = null;   
  30.     private BufferedReader in = null;   
  31.     private PrintWriter out = null;   
  32.     private String content = "";   
  33.   
  34.     @Override  
  35.     public void onCreate(Bundle savedInstanceState) {   
  36.         super.onCreate(savedInstanceState);   
  37.         setContentView(R.layout.main);   
  38.         tv_msg = (TextView) this.findViewById(R.id.TextView);   
  39.         ed_msg = (EditText) this.findViewById(R.id.EditText01);   
  40.         btn_login = (Button) this.findViewById(R.id.Button01);   
  41.         btn_send = (Button) this.findViewById(R.id.Button02);   
  42.         try {   
  43.             socket = new Socket(HOST, PORT);   
  44.             in = new BufferedReader(new InputStreamReader(socket   
  45.                     .getInputStream()));   
  46.             out = new PrintWriter(new BufferedWriter(   
  47.                     new OutputStreamWriter(socket.getOutputStream())),   
  48.                     true);   
  49.         } catch (Exception ex) {   
  50.             ex.printStackTrace();   
  51.             ShowDialog("登陸異常:" + ex.getMessage());   
  52.         }   
  53.         btn_send.setOnClickListener(new Button.OnClickListener() {   
  54.   
  55.             public void onClick(View v) {   
  56.                 // TODO Auto-generated method stub  
  57.                 String msg = ed_msg.getText().toString();   
  58.                 if (socket.isConnected()) {   
  59.                     if (!socket.isOutputShutdown()) {   
  60.                         out.println(msg);   
  61.                     }   
  62.                 }   
  63.             }   
  64.   
  65.         });   
  66.         new Thread(this).start();   
  67.     }   
  68.   
  69.     public void ShowDialog(String msg) {   
  70.         new AlertDialog.Builder(this).setTitle("提示").setMessage(msg)   
  71.                 .setPositiveButton("OK"new DialogInterface.OnClickListener() {   
  72.   
  73.                     public void onClick(DialogInterface dialog, int which) {   
  74.                         // TODO Auto-generated method stub  
  75.   
  76.                     }   
  77.   
  78.                 }).show();   
  79.     }   
  80.   
  81.     public void run() {   
  82.         try {   
  83.             while (true) {   
  84.                 if(socket.isConnected()){   
  85.                     if(!socket.isInputShutdown()){   
  86.                         if ((content = in.readLine()) != null) {   
  87.                             Log.i("TAG""++ "+content);   
  88.                             content += "\n";   
  89.                             mHandler.sendMessage(mHandler.obtainMessage());   
  90.                         }else{   
  91.                                
  92.                         }   
  93.                     }   
  94.                 }   
  95.                    
  96.             }   
  97.         } catch (Exception ex) {   
  98.             ex.printStackTrace();   
  99.         }   
  100.     }   
  101.   
  102.     public Handler mHandler = new Handler() {   
  103.         public void handleMessage(Message msg) {   
  104.             super.handleMessage(msg);   
  105.             Log.i("TAG""-- "+msg);   
  106.             tv_msg.setText(tv_msg.getText().toString() + content);   
  107.         }   
  108.     };   
  109. }  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章