package Chapter3;
import java.io.BufferedReader;
import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket;public class Handler implements Runnable {
private Socket socket;public Handler(Socket socket) {
this.socket = socket; }public void run() {
try { System.out.println("新连接开始" + socket.getInetAddress() + ":" + socket.getPort()); BufferedReader br = getReader(socket); PrintWriter pw = getWriter(socket); String msg=null; while((msg=br.readLine())!=null){ System.out.println(msg); pw.println(echo(msg)); if(msg=="bye"){ break; } } } catch (IOException e) { e.printStackTrace(); }finally{ if(socket!=null) try { socket.close(); System.out.println("连接已关闭"); } catch (IOException e) { e.printStackTrace(); } } }private String echo(String msg) {
return "echo" + msg; }private BufferedReader getReader(Socket socket) throws IOException {
InputStream socketIn = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(socketIn)); return br; }private PrintWriter getWriter(Socket socket) throws IOException {
OutputStream socketOut = socket.getOutputStream(); PrintWriter pw = new PrintWriter(socketOut, true); return pw; } }