这是我的客户端代码:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class XmlBlasterUMS implements Runnable{ public ServerSocket server = null;
public BufferedReader br = null;
public PrintWriter out = null;
public Socket client = null;
@Override
public void run() {
try {
ServerSocket serverSocket = new ServerSocket(5566);
System.out.println("开始监听..............");
while(true){
client = serverSocket.accept();
br = new BufferedReader(new InputStreamReader(client.getInputStream()));
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())));
System.out.println("读取消息");
String message = br.readLine();
System.out.println(message);
System.out.println("发送消息................");
out.println("message is receive");
out.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
if(br != null){
br.close();
}
if(out != null){
out.close();
}
if(client != null){
client.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args){
XmlBlasterUMS ums = new XmlBlasterUMS();
Thread t1 = new Thread(ums);
t1.start();
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class XmlBlasterUMS implements Runnable{ public ServerSocket server = null;
public BufferedReader br = null;
public PrintWriter out = null;
public Socket client = null;
@Override
public void run() {
try {
ServerSocket serverSocket = new ServerSocket(5566);
System.out.println("开始监听..............");
while(true){
client = serverSocket.accept();
br = new BufferedReader(new InputStreamReader(client.getInputStream()));
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())));
System.out.println("读取消息");
String message = br.readLine();
System.out.println(message);
System.out.println("发送消息................");
out.println("message is receive");
out.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
if(br != null){
br.close();
}
if(out != null){
out.close();
}
if(client != null){
client.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args){
XmlBlasterUMS ums = new XmlBlasterUMS();
Thread t1 = new Thread(ums);
t1.start();
}
}
package cn.com.autosoft.android.xmlbaster.client;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;public class BlasterClient extends Activity {
/** Called when the activity is first created. */
public static final String TAG = "blaster";
public Button button = null;
public EditText edittext = null;
public Socket socket = null;
public BufferedReader br = null;
public PrintWriter out = null;
public String data = "";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button)this.findViewById(R.id.Button01);
edittext = (EditText)this.findViewById(R.id.EditText01);
button.setOnClickListener(sendRequest);
}
public OnClickListener sendRequest = new OnClickListener(){ @Override
public void onClick(View arg0) {
try {
Log.d(TAG, "connect");
socket = new Socket(InetAddress.getByName("192.168.0.156"),5566);
String message = edittext.getText().toString();
Log.d(TAG, message);
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
Log.d(TAG, "send message");
out.write(message);
out.flush();
edittext.setText("");
Log.d(TAG,br.readLine());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(br != null){
br.close();
}
if(out != null){
out.close();
}
if(socket != null){
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
};
}
你把你发送消息的地方放到另外的线程。
我试过,可以得到你要的结果