![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
netty
煜~城
对工作负责就是对自己负责。贯彻技术在手,天下我有的真理
展开
-
netty对应的TCP粘包和拆包和解决方案
1、TCP是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发给接收端的包,更有效的发给对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样做虽然提高了效率,但是接收端就难于分辨出完整的数据包了,因为面向流的通信是无消息保护边界的2、由于TCP无消息保护边界, 需要在接收端处理消息边界问题,也就是我们所说的粘包、拆包问题, 看一张图2.1、假设客户端分别发送了两个数据原创 2020-07-29 20:19:54 · 295 阅读 · 0 评论 -
netty编码与解码
1、编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码 ,codec(编解码器) 的组成部分有两个:decoder(解码器)和 encoder(编码器)。encoder 负责把业务数据转换成字节码数据,decoder 负责把字节码数据转换成业务数据。2、netty提供的编码器和解码器有: StringEncoder,对字符串数据进行编码 ObjectEncoder,对 Java 对象进行编码 StringDecoder,原创 2020-07-29 20:11:19 · 1065 阅读 · 0 评论 -
netty简单入门案例
Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。我们在网络编程的时候一般都会使用该框架作为基础框架,下面使用netty来实现简单的群聊系统来认识netty的基本使用方法。服务端: public class GroupChatServer { private int port;//定义端口信息 private GroupChatServer(int port){ this.port = port;原创 2020-07-29 17:39:12 · 292 阅读 · 0 评论 -
使用nio编写一个简单群聊系统,实现服务器端和客户端的数据通信
使用NIO技术编写一个简单的群聊技术来了解ServerSocketChannel,SocketChannel,Selector,SelectionKey等技术的使用技巧与方法。服务器端的代码:服务器端代码 package com.yu.nio;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.*;import java.util.Iterator;impo原创 2020-07-03 16:56:27 · 540 阅读 · 1 评论