网络编程
文章平均质量分 92
IO、Netty、webSocket等
miller.zc
记录和分享一些工作和学习中的笔记
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Netty服务器端和客户端流程解析
一、服务端时序图:1、创建ServerBootStrap实例2、通过ServerBootStrap实例创建EventLoopGroup(线程池,事件循环组)3、有客户端连接请求,就通过EventLoopGroup生成一个channel(通道,类似于socket), 将其注册到EventLoop(线程)里面,这个线程会循环监听channel的IO事件。4、创建管道ChannelPipeline和channel绑定,里面有多个阀门ChannelHandler (具体的处理逻辑就写在这里),原创 2020-12-25 17:37:51 · 815 阅读 · 0 评论 -
Netty核心组件解析
一、Channel:1、客户端连接上服务器之后,就会产生一个channel,就是一个通道。2、可以理解为socket,通过channel来完成IO操作(read、write、bind、connect等等) 也是数据入站和出站的载体。二、EventLoop 和 EventLoopGroup 1、EventLoop就是一个用于监控事件的一个组件,所有Channel都会被分配到具体的 EventLoop上。 2、一个EventLoop可以监控多个channel。 3、EventL原创 2020-12-25 17:34:34 · 520 阅读 · 0 评论 -
Reactor和Netty模式详解
一、经典的I/O服务设计 ———— BIO模式1、流程:(1)、服务器端的Server是一个线程,通过死循环来阻塞的监听客户端的连接请求和通信。(2)、当客户端向服务器端发起连接请求,服务器端通过ServerSocket.accept()阻塞 返回一个Socket对象,此Socket对象和对应的客户端建立连接。(3)、构建一个handler,将Socket传入该handler(处理程序), 并创建一个线程来执行这个handler。(4)、当该客户端和服务器端完成通信关闭连接原创 2020-12-25 17:32:06 · 1077 阅读 · 0 评论 -
Socket和NIO深入分析
一、TCP/UDP:同:都属于传输层协议,传输层协议只关心传输数据,而不关心数据的封装异:1、TCP是可靠性传输协议,点对点的传输,有连接状态,可能会发生粘包和拆包2、UPD不可靠,广播性质的传输,无连接状态,不会发生粘包和拆包为什么:1、可靠性:TCP是基于流来传输的,发送端发送数据,会先将数据发送到系统内核,再通过网络发送到接收端内核,接收端收到后,会发送ack到发送端,发送端收到后才会情况内核缓存。而UDP发送到接收端之后,没有确认机制,直接情况内核缓存,可能会数据丢失。原创 2020-12-25 17:26:58 · 773 阅读 · 0 评论 -
webSocket+Stomp+SockJS+rabbitmq推送原理和使用
一、websocket与httphttp是基于短连接的,无法实现长连接,无法实现双工通信。websocket是基于长连接的,可以双工通信。这两个协议都属于应用层,都是基于tcp传输层协议实现的。websocket第一次连接的时候,是发送的http请求,请求成功后,升级为socket连接。第一次请求头会带着两个参数,告诉服务器,协议要升级。服务端确认并返回后,就升级(与http无关了)Upgrade: websocketConnection: Upgrade二、Websocket的作原创 2020-12-25 17:24:03 · 1510 阅读 · 1 评论 -
IO模型
一、IO模型分类1、同步阻塞IO(Blocking IO):即传统的IO模型。2、同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的, 非阻塞IO要求socket被设置为NONBLOCK。3、异步阻塞IO:即经典的Reactor设计模式,也称为IO多路复用。4、异步非阻塞IO:即经典的Proactor设计模式。二、IO操作分为哪些部分:1、先从磁盘、socket套接字等读取数据到操作系统内存。2、再从操作系统内存读取数据到用户线程中。三、同步和异步区原创 2020-12-25 17:19:09 · 318 阅读 · 0 评论 -
Http、Socket、WebSocket之间联系与区别
一、TCP/IP协议栈详解1、TCP/IP协议栈分为4层:(1)、网络层(IP):(高速公路),只管建立通道。(2)、传输层(TCP和UDP):(卡车),只管传输数据。(3)、应用层(HTTP和WebSocket) (货物箱),管理传输的数据的具体格式, 利用tcp传输协议,在客户端和服务端之间传输封装好的数据。(4)、抽象层(SOCKET)(港口码头/车站),位于应用层和传输层之间,利用socket操作复杂的传输层协议的功能,相当于提供的一组api,可以让我们不直接操作传输原创 2020-12-25 17:15:28 · 232 阅读 · 0 评论
分享