`

Netty使用总结(未完待续)

 
阅读更多

在使用网络编程的时候,前提要明白TCP/UDP协议相关内容

 

TCP协议:计算机网络中传输层的一个面向连接、保证数据可靠性、有序性的一个协议,因为它的可靠性特点(传输过程中保证不丢包),应用层的如FTP、HTTP等协议的下一层都使用的是TCP进行传输。

 

UDP协议:同样是传输层的一个无连接,不保证可靠性的一个协议,它的特点是在传输过程中无需三次握手,所以,相比TCP协议的话,它的效率更高,在某些应用程序在允许丢包的情况下,都是用的是UDP协议,如视频,音频等应用程序,丢失少量的包并不影响效果。

 

TCP协议的几个关键点:

 

 

 

 

 

注意:

  1. 在网络中,要考虑到丢包的问题。
  2. 在成功建立连接之后,就没有服务端和客户端之分,两者都可以进行传输和接收数据
  3. TCP连接是”全双工传输“,即:客户端和服务端可以同时进行接收和发送数据。
  4. 长连接和短连接的区别就是,长连接在三次握手连接之后,没有释放掉连接,下次传输可以直接传输;而短连接是在三次握手之后,数据传输完成,就关闭连接,典型的HTTP协议采用的就是短连接。
  5. 建立的每一个连接(linux中称为文件句柄),都会占用一个线程,消耗一些内存资源,所以在使用完毕之后,如果没用,就要及时关闭连接
  6. 传输的过程都是以字节(byte)流进行传输的。

 ---------------------------------------------------Netty总结---------------------------------------------------

 

关键点:NIO 、 BIO 、AIO、buffer(缓冲区) 、 channel(通道)、inhandler/outhandler(处理器)、channlepipline、 编解码、 线程模型、非阻塞事件驱动模型、

 

BIO、NIO、AIO参考这里  http://ihenu.iteye.com/blog/2247618

 

 

 0.NIO核心

     channel、Selector、Buffer

 

 

1.网络编程中同步和异步的概念

 

同步:在进行发送或者接受数据的时候,一直等到数据发送或者接受完成的过程

异步:把数据发送到缓冲区立即返回,而发送或者接受成功的消息是通过事件来通知的(事件驱动程序),事件驱动程序利用到了回调的机制

 

 

 2.一个channel在一个生命周期之内,始终是由一个线程来负责的,所以不会涉及到同步的问题

 

 

 

 

3.Buffer

 

 

比JDK原生的ByteBuffer功能更强大,拥有读写索引,可以随机读写。动态扩容

 

1.heapBuffer:存储在堆区,实质是数组,如果访问非堆区的数组会报错。

2.directBuffer:性能更好,但是内存分配和释放比heap的复杂,所以使用了内存池来解决这个问题??不支持直接数组访问,可以间接的访问数组

3.compositeBuffer:像一个列表,可以动态的添加和删除其中的ByteBuffer,操作过程中不回导致内存泄露。作用是什么??

 

复合buffer、heapBuffer、directBuffer、

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    android netty使用demo

    在"android netty使用demo"中,我们看到的是一个简单的示例,它演示了如何在Android环境中搭建Netty客户端和服务端,并实现它们之间的数据交互。首先,我们需要理解Netty的核心概念:Bootstrap、Channel、Pipeline和...

    NettyDemo Netty使用实例,对象传递调用

    Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。...掌握Netty的使用,将极大地提升我们在分布式系统、游戏服务器、RPC服务等领域的开发能力。

    Netty 使用Disruptor机制的处理源代码

    标题 "Netty 使用Disruptor机制的处理源代码" 暗示我们将探讨如何在 Netty 中集成并利用 Disruptor 来优化消息处理流程。Disruptor 的核心是其环形缓冲区(Ring Buffer),这个缓冲区能够在无锁或极少锁的情况下实现...

    Android使用Netty网络框架实践(客户端、服务端)

    本实践将详细介绍如何在Android环境中使用Netty进行客户端和服务端的通信。 首先,我们需要理解Netty的基本概念。Netty的核心是其EventLoopGroup(事件循环组),它负责处理I/O事件,并将它们分发到相应的...

    NettyAndroid,Netty在Android中的使用

    Netty在Android开发中的应用实战系列(二)——— Encoder | Decoder | Handler 的使用:https://azhon.blog.csdn.net/article/details/100831777 Netty在Android开发中的应用实战系列(三)——— 心跳处理 | 断线...

    netty-unsafe总结

    对Netty中的Unsafe做了简单的总结,构建自己的知识网!!!

    netty的入门经典例子的使用

    这个“netty的入门经典例子的使用”很可能是为了引导初学者了解和掌握 Netty 的基本用法和核心概念。下面将详细阐述 Netty 的基础知识及其在实际应用中的关键点。 首先,Netty 提供了一个高度可定制的事件驱动的...

    Netty4 使用

    在本文中,我们将深入探讨Netty 4的使用,包括其核心概念、对象传输、通信封装以及如何利用它来创建高效的服务。 **Netty 4的核心特性** 1. **异步事件驱动**:Netty 使用非阻塞I/O模型,通过EventLoop(事件循环...

    Netty-Channel总结思维导图

    Netty对Channel总结的思维导图,包括功能梳理,源码分析。

    Android使用netty

    总结来说,Android使用Netty框架进行网络通信,能带来更高效、灵活的解决方案。通过学习和实践这个Demo,你将掌握Netty的基本用法,包括创建Bootstrap、配置Pipeline、处理I/O事件以及自定义编解码器等,从而提升你...

    dubbo协议、netty框架总结

    Dubbo协议和Netty框架是构建高性能分布式服务的关键技术,它们在现代企业级应用中扮演着重要角色。Dubbo协议是Dubbo服务框架的核心部分,主要用于实现服务提供者与消费者之间的高效通信。它采用请求-响应模式,支持...

    使用netty进行rtsp服务端开发.zip

    在本文中,我们将深入探讨如何使用Netty进行RTSP(Real Time Streaming Protocol)服务端的开发,以及如何处理H264、H265和AAC格式的流媒体文件。 1. RTSP简介: RTSP是一种应用层协议,主要用于控制实时流传输,如...

    使用netty使用http协议开发文件服务器

    总结起来,使用Netty实现HTTP文件服务器涉及的关键知识点包括: 1. HTTP协议的基本概念:请求方法、状态码、响应头和响应体。 2. Netty框架:Channel、EventLoopGroup、ChannelPipeline、ChannelHandler和...

    Netty使用初步

    《Netty使用初步》 Netty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。它广泛应用于各种分布式系统、云计算平台以及游戏服务器等场景。本篇文章将深入探讨Netty...

    netty实现SSL/TSL双向加密认证示例

    总结,Netty 提供了强大而灵活的工具来实现 SSL/TLS 安全通信,包括双向认证。通过正确配置 `SslContext`、处理通道处理器和管理证书,我们可以构建安全的网络应用。这个示例项目为理解和实践这些概念提供了很好的...

    Netty使用心得,Netty实战

    在深入探讨 Netty 的使用心得和实战应用之前,先来了解一下 Netty 的核心特性。 1. **异步非阻塞 I/O**:Netty 采用基于通道(Channel)和事件处理器(EventLoop)的异步模型,使得它能够高效处理大量并发连接,...

    Netty重点内容总结及实战.pdf

    以下是基于给定文件内容的Netty重点内容总结及实战知识点: ***ty实战环境配置 - 需要引入Netty的jar包,版本为netty-all-4.0.24.Final。 - 创建Maven工程,并在pom.xml文件中添加Netty依赖。 ***ty实战目的 - ...

    resteasy使用netty

    总结来说,RestEasy与Netty的结合使用是一种高效且灵活的实现REST服务的方法。通过Netty的高性能网络通信能力,我们可以构建一个不依赖于Servlet容器的REST服务器,同时享受RestEasy带来的便捷REST开发体验。在实际...

    Netty使用JSerialComm进行串口读取的更新库源代码及问题修正

    第二个问题是:即使处理了该异常,测试程序仍然退出,这不能满足一些实际使用要求需求。该问题与设置很长的读取超时时间没关系,无论多长到时间后总会退出。 4)打包生成 netty-transport-jserialcomm-2.0.0.jar、...

    Netty使用与实现.pdf

    ### Netty的使用与实现详解 #### 一、Netty简介 Netty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器与客户端。它简化了网络程序的开发过程,提供了丰富的特性支持,使得...

Global site tag (gtag.js) - Google Analytics