
Netty
文章平均质量分 80
@胡海龙
www.huhailong.vip
展开
-
Netty学习——使用Netty快速编写一个文件服务器
最终效果简介本Demo是使用Netty快速的创建一个文件服务器。实现了以下功能:展示目录或文件,当为文件时显示文件大小点击目录可进入自目录可返回上一级点击文件可下载文件Demo环境:jdk1.8Netty 4.1.74.Final实现代码服务端package vip.huhailong.server;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;impo原创 2022-03-23 22:42:46 · 1430 阅读 · 0 评论 -
Netty中分隔符和定长解码器的使用
简介分割符解码器(DelimiterBasedFrameDecoder)和定长解码器(FixedLengthFrameDecoder),前者可以自动完成以分隔符为结束标志的消息解码,后者可以自动完成对定长消息的解码,它们都能解决TCP粘包和拆包的问题。DelimiterBasedFrameDecoder 开发使用DelimiterBasedFrameDecoder我们可以自动完成以分隔符作为码流结束标识的信息解码,下面通过一个简单的程序作为演示,该程序为一个EchoServer,当EchoServer原创 2022-03-14 11:05:22 · 1355 阅读 · 0 评论 -
Netty学习——Netty解决TCP粘包与拆包问题
TCP 粘包与拆包TCP是一个“流”协议,TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小包封装成一个大的数据包进行发送,这就是TCP的粘包和拆包问题。TCP 粘包与拆包问题说明假设客户端分别发送了俩个数据包D1和D2到服务端。但服务端每次读到的字节数是不确定的,所以可能存在下面四种情况:服务端分两次读取到了D1和D2数据包,也就是理想的正常情况,没有发生粘包和拆包。服务端一原创 2022-03-11 16:57:11 · 4664 阅读 · 0 评论 -
Netty学习——UDP接收与发送的简单使用
什么是UDP协议?UDP (User Datagram Protocol),全称为——用户数据报协议。UDP提供了一种无需建立连接就可以发送封装的IP数据包的方法。在OSI模型中处于传输层,IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。以上内容参考与百度百科:UDPNetty实现UDP服务端与客户端本次Demo参考《Netty权威指南》中的内容,在书中的示例上稍作了一些修改。主要实现了:客户端向服务端发送原创 2022-03-09 16:39:10 · 8558 阅读 · 1 评论 -
Netty学习——入门实例之实现时间协议服务
时间协议服务介绍时间协议会发送一条包含32位整数的消息,而不接收任何请求,并在消息发送后关闭连接。在本例中,将演示如何构造和发送消息,以及如何在完成时关闭连接。由于时间协议将忽略任何收到的消息,而是在建立连接后立即发送消息,因此我们这里不使用channelRead()方法,而是使用channelActive()方法,像下面代码这样:package server;import io.netty.buffer.ByteBuf;import io.netty.channel.ChannelFuture原创 2022-03-07 16:06:45 · 373 阅读 · 2 评论 -
Netty学习——入门实例之实现丢弃协议和Echo协议
Demo使用的Netty版本:<!-- https://mvnrepository.com/artifact/io.netty/netty-all --><dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.74.Final</version></depe原创 2022-03-01 22:43:52 · 532 阅读 · 0 评论