「Netty系列」使用wireshark对网络通信扑捉,进行三次握手和四次挥手原理分析(Netty前置二)

本文通过Wireshark深入分析TCP网络通信的三次握手和四次挥手过程,结合Netty讲解原理。并探讨BIO存在的问题与解决方案,如线程、线程池和NIO。
摘要由CSDN通过智能技术生成

正常下班,文章走起。在网络的通信的时候,都有听说过三次握手四次挥手。但是对其原理是否清晰?本篇文章通过使用wireshark对网络通信扑捉,进行原理分析。

1

BIO代码实现

 

//服务端代码
public class ServerSocket {
    public static void main(String[] args) throws Exception {
        //创建ServerSocket对象,用于客户端的连接
        java.net.ServerSocket serverSocket = new java.net.ServerSocket(8989);
        //定义输入流对象读取数据
        byte[] bytes = new byte[1024];
        try {

            while (true) {
                System.out.println("服务端发生阻塞,等待连接....");
                //调用accept方法监听客户端,阻塞方法
                Socket accept = serverSocket.accept();
                //调用Socket对象的方法获取输入流对象
                InputStream inputStream = ((Socket) accept).getInputStream();
                System.out.println("服务端发生阻塞,等待接收数据....");
                int read = inputStream.read(bytes);
                System.out.println(new String(bytes, 0, read));
                //关闭资源
                accept.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (serverSocket != null && !serverSocket.isClosed()) {
                serverSocket.close();
            }
        }
    }
}

//客户端代码
public class ClientSocket {
    public static void main(String[] args) throws  Exception {
        //创建Socket对象,与服务端Socket建立连接
        Socket socket=new Socket("127.0.0.1",8989);
        //获取输出流对象
        OutputStream  outputStream=socket.getOutputStream();
        System.out.println("客户端阻塞,接收键盘输入....");
        //接收键盘输入,模拟延迟消息发送
        Scanner scanner
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值