• netty篇-数据传输方式


    为什么要使用netty的传输方式?

    这里举一个例子,例子使用经典的OIO来创建一个服务器。

    public class PlainOioServer {
        public void server(int port) throws IOException {
            final ServerSocket socket = new ServerSocket(port);
            try {
                do {
                    final Socket clientSocket = socket.accept();
                    System.out.println("接受来自于" + clientSocket + "的连接");
                    new Thread(() -> {
                        OutputStream out;
                        try {
                            out = clientSocket.getOutputStream();
                            out.write("Hi! 
    ".getBytes(StandardCharsets.UTF_8));
                            out.flush();
                            clientSocket.close();
                        } catch (IOException e) {
                            System.out.println(ExceptionUtils.getStackTrace(e));
                        } finally {
                            try {
                                clientSocket.close();
                            } catch (IOException e) {
                                //ignore on close
                            }
                        }
                    }).start();
                } while (true);
            } catch (Exception e) {
                System.out.println(ExceptionUtils.getStackTrace(e));
            }
        }
    
        public static void main(String[] args) throws IOException {
            new PlainOioServer().server(8082);
        }
    }

    这段代码可以处理中等数量的并发客户端。但是并不能很好的伸缩到支撑成千上万的并发连接。然后决定改用异步网络编程。发现改造后的代码是这样的:

    起风了,努力生存
  • 相关阅读:
    第一次结对编程作业
    第一次个人编程作业
    获取file中字段,写入到TXT文件中
    通过file中的字段查询MySQL内容
    MySQL常用语句
    MySQL乱码问题
    脚本数据编码格式转换
    mysql 常用命令操作
    thinkphp项目 Class 'finfo' not found
    POJ3255--次短路
  • 原文地址:https://www.cnblogs.com/StivenYang/p/14957919.html
Copyright © 2020-2023  润新知