字符集转换一下就可以了,另外,你的循环中socket已关了,还在读写???
我把你的改了一点:
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
public class Servicer extends Thread {
Socket s; public Servicer(Socket s) {
this.s = s;
} public void run() {
try {
InputStream ips = s.getInputStream();
OutputStream ops = s.getOutputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(ips));
DataOutputStream dos = new DataOutputStream(ops); while (!interrupted()) {
String str="welcome, please enter--中文出错:";
dos.write(str.getBytes("gbk"));
String strWord = br.readLine();
if(strWord==null || strWord.equals(""))
break;
dos.write(strWord.getBytes("gbk"));
}
s.close();
br.close();
dos.close();

} catch (Exception e) {
e.printStackTrace();
}

}
}