package com.yarin.android.Examples_08_05;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class Activity01 extends Activity
{
private final String DEBUG_TAG = "Activity01";
//������IP���˿�
private static final String SERVERIP = "192.168.1.110";
private static final int SERVERPORT = 54321;
private Thread mThread = null;
private Socket mSocket = null;
private Button mButton_In = null;
private Button mButton_Send= null;
private EditText mEditText01 = null;
private EditText mEditText02 = null;
private BufferedReader mBufferedReader = null;
private PrintWriter mPrintWriter = null;
private String mStrMSG = "";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton_In = (Button)findViewById(R.id.Button_In);
mButton_Send = (Button)findViewById(R.id.Button_Send);
mEditText01=(EditText)findViewById(R.id.EditText01);
mEditText02=(EditText)findViewById(R.id.EditText02);
//��½
mButton_In.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
try
{
//���ӷ�����
mSocket = new Socket(SERVERIP, SERVERPORT);
//ȡ�����롢�����
mBufferedReader = new BufferedReader(new InputStreamReader(mSocket.getInputStream()));
mPrintWriter=new PrintWriter(mSocket.getOutputStream(), true);
}
catch (Exception e)
{
// TODO: handle exception
Log.e(DEBUG_TAG, e.toString());
}
}
});
//������Ϣ
mButton_Send.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
try
{
//ȡ�ñ༭�����������������
String str = mEditText02.getText().toString() + "\n";
//����������
mPrintWriter.print(str);
mPrintWriter.flush();
}
catch (Exception e)
{
// TODO: handle exception
Log.e(DEBUG_TAG, e.toString());
}
}
});
mThread = new Thread(mRunnable);
mThread.start();
}
//�߳�:������������������Ϣ
private Runnable mRunnable = new Runnable()
{
public void run()
{
while (true)
{
try
{
if ( (mStrMSG = mBufferedReader.readLine()) != null )
{
//��Ϣ����
mStrMSG+="\n";
mHandler.sendMessage(mHandler.obtainMessage());
}
// ������Ϣ
}
catch (Exception e)
{
Log.e(DEBUG_TAG, e.toString());
}
}
}
};
Handler mHandler = new Handler()
{
public void handleMessage(Message msg)
{
super.handleMessage(msg);
// ˢ��
try
{
//�������¼��ӽ���
mEditText01.append(mStrMSG);
}
catch (Exception e)
{
Log.e(DEBUG_TAG, e.toString());
}
}
};
}