package com.a;
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;
import android.widget.Toast;
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 = "10.166.112.158";
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.client);
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) {
ShowDialog("登陆异常:" + ex.getMessage());
}
btn_send.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
String msg = ed_msg.getText().toString();
if (socket.isConnected()) {
if (!socket.isOutputShutdown()&& msg.length()>0) {
out.println(msg);
out.flush();// ju shuo important
ed_msg.setText("");
Toast.makeText(Test.this, "发送完成!", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(Test.this, "没有内容!不会被发送!", Toast.LENGTH_SHORT).show();
ed_msg.setFocusable(true);
}
}
}
});
btn_login.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
String msg = ed_msg.getText().toString();
if(msg.length()<=0) {
Toast.makeText(Test.this, "content应包含内容!", Toast.LENGTH_SHORT).show();
}
}
});
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) {
}
}).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();
}
}
//要有SWING的思想,回调,传参
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);
}
};
}