
网络编程
文章平均质量分 95
W|J
你很懒,还没有添加简介
展开
-
Netty 进阶
魔数,用来在第一时间判定是否是无效数据包版本号,可以支持协议的升级序列化算法,消息正文到底采用哪种序列化反序列化方式,可以由此扩展,例如:json、protobuf、hessian、jdk指令类型,是登录、注册、单聊、群聊... 跟业务相关请求序号,为了双工通信,提供异步能力正文长度消息正文编解码器根据上面的要素,设计一个登录请求消息和登录响应消息,并使用 Netty 完成收发@Slf4j@Override// 1. 4 字节的魔数// 2. 1 字节的版本,原创 2023-06-20 15:15:51 · 758 阅读 · 0 评论 -
Netty 入门
详细分析如下起点,对于 NIO 实现来讲,在 io.netty.channel.nio.AbstractNioByteChannel.NioByteUnsafe#read 方法中首次创建 ByteBuf 放入 pipeline(line 163 pipeline.fireChannelRead(byteBuf))入站 ByteBuf 处理原则对原始 ByteBuf 不做处理,调用 ctx.fireChannelRead(msg) 向后传递,这时无须 release将原始。原创 2023-06-15 20:49:54 · 446 阅读 · 0 评论 -
NIO 基础
适合连接数特别多,但流量低的场景(low traffic)TLV 格式,即 Type 类型、Length 长度、Value 数据,类型和长度已知的情况下,就可以方便获取消息大小,分配合适的 buffer,缺点是 buffer 需要提前分配,如果内容过大,则影响 server 吞吐量。一种思路是首先分配一个较小的 buffer,例如 4k,如果发现数据不够,再分配 8k 的 buffer,将 4k buffer 内容拷贝至 8k buffer,优点是消息连续容易处理,缺点是数据拷贝耗费性能,参考实现。原创 2023-06-13 10:55:49 · 1162 阅读 · 0 评论 -
Java网络编程(UDP、TCP)
什么网络编程?计算机跟计算机之间通过网络进行数据传输。常见软件架构有哪些?CS/BS通信的软件架构CS1BS的各有什么区别和优缺点CS:客户端服务端模式需要开发客户端BS:浏览器服务端模式不需要开发客户端。CS:适合定制专业化的办公类软件如:IDEA、网游BS:适合移动互联网应用,可以在任何地方随时访问的系统。网络编程三要素分别是什么?IP、端口号、协议网络编程三要素分别表示什么?IP:设备在网络中的地址,是唯一的标识端口号:应用程序在设备中唯一的标识。协议。原创 2023-05-16 16:17:07 · 1020 阅读 · 0 评论