标签: Netty (4)
网络问题汇总 有更新!
网络问题汇总 一、http响应头包含些什么 HTTP响应头是HTTP协议中用于响应客户端请求的一部分,通常包含以下信息: 状态行:状态行包含三个部分,分别为HTTP版本、状态码和状态描述。常见的状态码有200(成功)、404(未找到)和500(服务器错误)等。 响应头字段:响应头字段是一个由键值对组成的列表,用于传递一些附加的响应信息,例如日期、内容类型、缓存策略、cookie等。常见的响应头字段有: Content-Type:指定响应正文的类型和字符集; Content-Length:指定响应正文的字节数; Cache-Control:指定缓存策略; Set-Cookie:设置Cookie; Location:重定向URL; Server:指定服务器软件的名称和版本号; 响应正文:响应正文是服务器返回给客户端的实际数据。响应正文的格式和内容根据不同的应用场景和协议规范而异。 HTTP响应头中的各个字段可以用于传递各种额外的信息,例如控制缓存、安全策略、站点隐私等。在实际应用中,合理地使用HTTP响应头可以提高应用程序的性能和安全性。 二、设备到通讯管理机采用MQTT协议合适吗 MQT....
网络编程基础 有更新!
Netty 一、NIO基础(Non-blocking io 非阻塞IO) 1、三大组件 【管道、缓冲区、选择器】 1、1 Channel & Buffer channel 类似于stream,它是读写数据的双向通道,可以从channel将数据读入buffer,也可以将buffer中数据写入channel,而之前的stream要么是输入,要么是输出,channel比stream更为底层 常见的channel有: FileChannel 【作为文件传输通道】 DatagramChannel 【做UDP网络传输时传输通道】 SocketChannel 【做TCP时传输通道】 ServerSocketChannel 【做TCP时传输通道 专用服务器】 buffer则用来缓冲读写数据,常见的buffer有 ByteBuffer 【抽象类】 MappedByteBuffer 【实现类】 DirectByteBuffer HeapByteBuffer ShortBuffer IntBuffer LongBuffer FloatBuffer DoubleBuffer 1、2 Selector ....
Netty基础 有更新!
Netty 一、Netty入门 1.1 概述 Netty是一个异步的(这里异步主要指通过多线程完成方法调用和处理结果相分离(因为如果调用方法的线程和接收数据的线程是同一个,那么意味着是同步)指调用时的异步,不是异步IO)、基于事件驱动(即底层多路复用selector)的网络应用框架,用于快速开发可维护、高性能的网络服务器和客户端 1.2 Hello Word //客户端向服务器发送HW,服务器接收不返回 /** * 服务端 */ public class HelloServer{ public static void main(String[] args){ // 1.服务启动器,负责组装netty组件,启动服务器 new ServerBootstrap() // 2.NIO基础部分有用到BossEventLoop, WorkerEventLoop(selector, thread), group组 EventLoop包含了线程和选择器 .group(new NioEventLoopGroup()) // 3.选择服务器的ServerSocketChannel实现 .channel(N....
Netty进阶 有更新!
Netty进阶 一、黏包与半包 1.1 黏包现象 /** * 服务端 */ @Slf4j public class HelloWorldServer{ void start(){ NioEventLoopGroup boss = new NioEventLoopGroup(); NioEventLoopGroup worker = new NioEventLoopGroup(); try{ ServerBootstrap serverBootstrap = new ServerBootstrap(); serverBootstrap.channel(NioServerSocketChannel.class); // 将接收缓冲区调小些观察半包现象 serverBootstrap.option(ChannelOption.SO_RCVBUF, 10); serverBootstrap.group(boss, worker); serverBootstrap.childHandler(new ChannelInitializer<SocketChannel>(){ @Overr....