import java.io.*; import java.net.*; public class socket extends ServerSocket { private static final int SERVER_PORT = 9000; public socket() throws IOException { super(SERVER_PORT); try { while (true) { Socket socket = accept(); new CreateServerThread(socket); } } catch (IOException e) { } finally { close(); } } // --- CreateServerThread class CreateServerThread extends Thread { private Socket client; private BufferedReader in; private PrintWriter out; public CreateServerThread(Socket s) throws IOException { client = s; System.out.println("Connect:" + client.toString()); in = new BufferedReader(new InputStreamReader(client.getInputStream(), "GB2312")); out = new PrintWriter(client.getOutputStream(), true); out.println("--- Welcome ---"); start(); } public void run() { try { String line = in.readLine(); System.out.println("[" + getId() + "]send:[" + line + "]"); while (!line.equals("bye")) { String msg = createMessage(line); out.println(msg); line = in.readLine(); System.out.println("[" + getId() + "]send:[" + line + "]"); } System.out.println("[" + getId() + "]bye"); out.println("--- Bye! ---"); in.close(); out.close(); client.close(); } catch (IOException e) { } } private String createMessage(String line) { return "You say:[" + line + "]"; } } public static void main(String[] args) throws IOException { new socket(); } } 对每个客户端连接建立一个新线程,与客户端以一次一行方式进行对话,以客户端发送bye作为结束