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

  • 相关阅读:
    [转]window.location方法获取URL及window.location.assign(url)和replace(url)区别
    [转]JQuery实现图片轮播效果
    [转]MVC Checkbox
    [转]VS2010类模板更改,增加版权等等信息
    [转]【译】详解Asp.net MVC DropDownLists
    [转]JQuery.Ajax之错误调试帮助信息
    设置Html.TextBoxFor的Value值 及 去除数字无效的零及小数点
    [转]使用RDLC报表(1) (4)
    [转]ASP.NET MVC 2 模板化辅助方法
    [转]jquery实现图片延时加载
  • 原文地址:https://www.cnblogs.com/stay-sober/p/4158801.html
Copyright © 2011-2022 走看看