Java Server端
packageserver;
importjava.io.*;
importjava.net.*;
publicclass Server {
privateServerSocket ss;
privateSocket socket;
privateDataInputStream in;
public Server(){
newServerThread().start();
}
classServerThread extends Thread{
public voidrun() {
try {
ss=newServerSocket(2020);
System.out.println("服务器启动了");
while(true){
socket=ss.accept();
System.out.println("有客户端连接到服务器");
in=newDataInputStream(socket.getInputStream());
Stringmsg="";
if((msg=in.readUTF())!=null){
System.out.println(msg);
}
}
} catch(IOException e) {
e.printStackTrace();
}finally{
try {
in.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
}
publicstatic void main(String[] args) throws IOException {
newServer();
}
}
Android client端
packagecom.newclient;
//importjava.io.BufferedWriter;
importjava.io.DataOutputStream;
importjava.io.IOException;
//importjava.io.OutputStreamWriter;
//importjava.io.PrintWriter;
importjava.net.*;
importjava.net.UnknownHostException;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.view.Menu;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.Toast;
publicclass MainActivity extends Activity {
privateButton buttonA = null;
privateButton buttonB = null;
privateButton buttonC = null;
privateButton buttonD = null;
privateButton buttonE = null;
privateButton buttonF = null;
Socketsocket = null;
DataOutputStreamout = null;
@Override
public voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonA =(Button) findViewById(R.id.button1);
buttonA.setOnClickListener(listener);
buttonB =(Button) findViewById(R.id.button2);
buttonB.setOnClickListener(listener);
buttonC =(Button) findViewById(R.id.button3);
buttonC.setOnClickListener(listener);
buttonD =(Button) findViewById(R.id.button4);
buttonD.setOnClickListener(listener);
buttonE =(Button) findViewById(R.id.button5);
buttonE.setOnClickListener(listener);
buttonF =(Button) findViewById(R.id.button6);
buttonF.setOnClickListener(listener);
}
publicboolean onCreateOptionsMenu(Menu menu) {
// Inflatethe menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main,menu);
returntrue;
}
privateOnClickListener listener = new OnClickListener() {
@Override
public voidonClick(View v) {
// TODOAuto-generated method stub
Button btn= (Button) v;
switch(btn.getId()) {
caseR.id.button1:
MyThreadmt1 = new MyThread("无痛");
mt1.start();
Toast.makeText(MainActivity.this,"无痛", Toast.LENGTH_LONG)
.show();
break;
caseR.id.button2:
MyThreadmt2 = new MyThread("轻度疼痛");
mt2.start();
Toast.makeText(MainActivity.this,"轻度疼痛", Toast.LENGTH_LONG)
.show();
break;
caseR.id.button3:
MyThreadmt3 = new MyThread("中度疼痛");
mt3.start();
Toast.makeText(MainActivity.this,"中度疼痛", Toast.LENGTH_LONG)
.show();
break;
caseR.id.button4:
MyThreadmt4 = new MyThread("重度疼痛");
mt4.start();
Toast.makeText(MainActivity.this,"重度疼痛", Toast.LENGTH_LONG)
.show();
break;
caseR.id.button5:
MyThreadmt5 = new MyThread("剧烈疼痛");
mt5.start();
Toast.makeText(MainActivity.this,"剧烈疼痛", Toast.LENGTH_LONG)
.show();
break;
caseR.id.button6:
MyThreadmt6 = new MyThread("无法忍受");
mt6.start();
Toast.makeText(MainActivity.this,"无法忍受", Toast.LENGTH_LONG)
.show();
break;
default:
break;
}
}
};
classMyThread extends Thread {
privateString str;
publicMyThread(String name) {
super();
this.str =name;
}
public voidrun() {
try {
System.out.println("socketbegin");
//创建socket对象,指定服务器端地址和端口号
socket =new Socket("192.168.1.209", 2020);
System.out.println("socketover");
// 获取Client 端的输出流
//PrintWriter out = new PrintWriter(new BufferedWriter(
// newOutputStreamWriter(socket.getOutputStream())), true);
// 填充信息
out = newDataOutputStream(socket.getOutputStream());
out.writeUTF(str);
out.flush();
// 关闭
out.close();
} catch(UnknownHostException e1) {
e1.printStackTrace();
} catch(IOException e1) {
e1.printStackTrace();
}
}
}
}
本人菜鸟,新手~刚刚接触Android!4.0的socket编程不能写到UI进程里,是了很久,总算解决了~~求大神给些修改,指导!!