java基础-网络io

问:初步理解网络IO

public class ServerDemo {
    public static void main(String[] args) {
        try {
            ServerSocket serverSocket = new ServerSocket(8080);
            Socket socket = serverSocket.accept();
            InputStream inputStream = socket.getInputStream();
            BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
            int length = 0;
            byte[] bytes = new byte[1024];
            while ((length = bufferedInputStream.read(bytes)) != -1) {
                System.out.println(new String(bytes,0,length,"UTF-8"));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

public class ClientDemo0 {
    public static void main(String[] args) {
        try {
            Socket socket = new Socket("localhost", 8080);
            OutputStream outputStream = socket.getOutputStream();
            BufferedOutputStream outputStream1 = new BufferedOutputStream(outputStream);
            outputStream1.write("你好".getBytes());
            outputStream1.flush();
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

问:Socket和ServerSocket

public class ServerSocketDemo {
    public static void main(String[] args) {
        ServerSocket serverSocket = null;
        try {
            serverSocket = new ServerSocket(8080);
            Socket socket = serverSocket.accept();
            System.out.println("客户端发起了一个链接操作" + socket.getPort());
            // 字节转成字符 FileStreamReader
            // 字符的缓存流读取 BufferedReader
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            // 只读取一行
            String str = bufferedReader.readLine();
            System.out.println("收到客户端消息:" + str);

            BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
            bufferedWriter.write("我以收到\n");
            bufferedWriter.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

public class ClientDemo {
    public static void main(String[] args) {
        try {
            String host = "localhost";
            int port = 8080;
            Socket socket = new Socket(host, port);
            OutputStream outputStream = socket.getOutputStream();
            BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream));
            bufferedWriter.write("发起消息 \n");
            bufferedWriter.flush();
            InputStream inputStream = socket.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            System.out.println(bufferedReader.readLine());
        } catch (Exception e) {
        }
    }
}

图1-1:

问:网络通信协议分析

网络分层模型

图:请求发送模型

请求接受模型

问:网络通信底层原理

图1-1:

阻塞过程

阻塞的优化

问:基于Socket手写实现RPC框架

什么是rpc协议


问:彻底搞懂阻塞和非阻塞

问:深入分析5种IO模型

问:NIO的概述以及应用

问:NIO详解,Channel和Buffer

问:剖析缓冲区的内部细节

问:剖析零拷贝的原理

问:SocketChannel和ServerSocketChannel

问:深入分析选择器Selector

问:NIO课程的阶段性总结


问:基于NIO改造RPC通信

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值