【Java开源代码栏目提醒】:本文主要为网学会员提供CT.java,希望对需要CT.java网友有所帮助,学习一下!
package com.CT;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class CT extends Activity {
/** Called when the activity is first created. */
final static int SERVER_PORT = 8001; // our server抯 own port
static EditText et = null;
TextView tv = null;
Client clientOut, clientIn;
@Override
public void onDestroy() {
System.exit(0);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et = (EditText) findViewById(R.id.EditText01);
tv = (TextView) findViewById(R.id.TextView01);
Button bt = (Button) findViewById(R.id.Button01);
clientOut = new Client("192.168.11.16", SERVER_PORT, null);
clientIn = new Client("192.168.11.16", SERVER_PORT+1, tv);
clientOut.start();
clientIn.start();
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
clientOut.messageout = et.getText().toString()+"\r\n";
clientOut.bReady = true;
tv.setText(tv.getText()+"\r\n"+"I say: "+et.getText().toString());
et.setText("");
}});
}
static class Client extends Thread {
// make input and output streams available to user classes
public InputStream in;
public OutputStream out;
// the socket itself remains ours though...
private Socket client;
String host;
int port;
TextView tv=null;
String response, request;
BufferedReader reader, readerMe;
PrintWriter writer;
String messageout = "";
boolean bReady = false;
Runnable ru = new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
tv.setText(tv.getText()+"\r\n"+"Server says: "+response);
}};
Handler hdl = new Handler();
public Client(String host, int port, TextView tv) {
this.host = host;
this.port = port;
this.tv = tv;
}
public void run() {
if(port==SERVER_PORT) {
try {
client = new Socket(host, port);
System.out.println("Client socket: " + client);
out= client.getOutputStream();
} catch (IOException e) {
System.err.println("IOExc : " + e);
}
writer = new PrintWriter(new OutputStreamWriter(out), true);
while(true) {
try {
if(bReady) {
bReady = false;
byte [] bts = messageout.getBytes();
InputStream is = new ByteArrayInputStream(bts);
readerMe = new BufferedReader(new InputStreamReader(is));
request = readerMe.readLine();
writer.println(request);
}
} catch (IOException e) {
System.err.println("Bye Bye~~");
System.exit(1);
} catch (Exception e) {
System.err.println("Bye Bye~~");
System.exit(1);
}
}
}
else if(port==SERVER_PORT+1) {
try {
client = new Socket(host, port);
System.out.println("Client socket: " + client);
in = client.getInputStream();
} catch (IOException e) {
System.err.println("IOExc : " + e);
}
reader = new BufferedReader(new InputStreamReader(in));
while(true) {
try {
response = reader.readLine();
if(response==null) {
System.err.println("Bye Bye~~");
System.exit(1);
}
System.out.println("Server says: "+response);
hdl.post(ru);
} catch (IOException e) {
System.err.println("Bye Bye~~");
System.exit(1);
} catch (Exception e) {
System.err.println("Bye Bye~~");
System.exit(1);
}
}
}
}
}
}