zoukankan      html  css  js  c++  java
  • socket编程3-Handler

    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;
        }
    }

  • 相关阅读:
    JavaScript 定时器
    JavaScript 面向对象
    JavaScript 数组Array
    JavaScript 基础
    HTML 基础
    HTML 常用标签
    python 线程/进程模块
    python GIL锁
    python 网络编程--socket模块/struct模块
    python 异常处理,约束
  • 原文地址:https://www.cnblogs.com/stay-sober/p/4158801.html
Copyright © 2011-2022 走看看