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 }
服务端程序:
- package com.Aina.Android;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- import java.net.Socket;
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.content.DialogInterface;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
- public class Test extends Activity implements Runnable {
- /** Called when the activity is first created. */
- private TextView tv_msg = null;
- private EditText ed_msg = null;
- private Button btn_send = null;
- private Button btn_login = null;
- private static final String HOST = "192.168.0.132";
- private static final int PORT = 9999;
- private Socket socket = null;
- private BufferedReader in = null;
- private PrintWriter out = null;
- private String content = "";
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- tv_msg = (TextView) this.findViewById(R.id.TextView);
- ed_msg = (EditText) this.findViewById(R.id.EditText01);
- btn_login = (Button) this.findViewById(R.id.Button01);
- btn_send = (Button) this.findViewById(R.id.Button02);
- try {
- socket = new Socket(HOST, PORT);
- in = new BufferedReader(new InputStreamReader(socket
- .getInputStream()));
- out = new PrintWriter(new BufferedWriter(
- new OutputStreamWriter(socket.getOutputStream())),
- true);
- } catch (Exception ex) {
- ex.printStackTrace();
- ShowDialog("登陆异常:" + ex.getMessage());
- }
- btn_send.setOnClickListener(new Button.OnClickListener() {
- public void onClick(View v) {
- // TODO Auto-generated method stub
- String msg = ed_msg.getText().toString();
- if (socket.isConnected()) {
- if (!socket.isOutputShutdown()) {
- out.println(msg);
- }
- }
- }
- });
- new Thread(this).start();
- }
- public void ShowDialog(String msg) {
- new AlertDialog.Builder(this).setTitle("提示").setMessage(msg)
- .setPositiveButton("OK", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- }
- }).show();
- }
- public void run() {
- try {
- while (true) {
- if(socket.isConnected()){
- if(!socket.isInputShutdown()){
- if ((content = in.readLine()) != null) {
- Log.i("TAG", "++ "+content);
- content += "\n";
- mHandler.sendMessage(mHandler.obtainMessage());
- }else{
- }
- }
- }
- }
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- public Handler mHandler = new Handler() {
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- Log.i("TAG", "-- "+msg);
- tv_msg.setText(tv_msg.getText().toString() + content);
- }
- };
- }