Netty从入门到客户端与服务端通信——UDP协议

本文介绍了Netty的基本概念、发展历程及其相对于IO和NIO的优势。通过一个UDP协议的实战案例,详细讲解了Netty服务端和客户端的创建、Handler的编写以及通信流程,展示了Netty在实现高性能网络通信中的应用。
摘要由CSDN通过智能技术生成

前言

不想多说什么,深刻的体会到学习方法的重要性,还有心态的问题,是否你能够沉得住气!耐的下心~这个过程感觉自己也是蛮拼的了~ 不过还好!终于让本姑娘有所收获了!!!


Netty宏观

如果最开始你去了解Netty你会发现真尼玛难!进程,线程,并发,NIo,IO,这么多鬼玩意。。。。首先我们先从宏观去来接他


What是Netty?

Netty是客户端于服务端进行通信的一个网络应用程序框架,他快速开发并且可以实现高性能协议和异步事件驱动。这些话是不是特别的高大尚啊~ 让我用一句大白话解决:他就是小明和小红两个人通过电话进行交流,并且这个过程中小红还可以让雪芬打电话。就是这么个玩意。。。


Netty来自哪?

Netty为什么现在这么好用并且这么流行,其实就是历史发展不断的更新不断的让我们程序员好干活~
Netty是jboss提供的一个jar包。这个jar包主要是针对的socket进行编程的。
1、IO:由于系统的扩大这个时候我们进行分模块话进行管理,然后使用RPC进行不同服务器之间远程通信,最开始的是时候我们使用的IO进行编程,但这种方式的编程也就是一个线程对应一个socket,并且是阻塞模式下的,阻塞的意思就是干这件事情的不能去做另外一件事情,所以非常的消耗资源。由于这些原因我们开发了另一种叫做NIO
2、NIO:NIO的重点突出就是在非阻塞下进行通信,他再设计上进行了优化,一个线程可以select选择多个socket,所以这个时候就方便了很多,但是出现了另一种问题,就是NIO从实质上并没有解决高并发的问题,所以这个时候Netty就出现了
3、Netty:Netty是基于NIO,他可以自己扩展自己的协议,并且是一个高并发的客户端和服务端的一个框架

NIO是面向缓冲区的,IO是面向的数据流

IO形式

这里写图片描述

NIO形式

这里写图片描述


同类技术?

同类技术处了是NIO,还有一个比Netty出现早的框架Mina框架
这里写图片描述


使用Netty的好处?

他简化网络应用的编程过程开发,例如UDP和TCP的socket服务开发,他功能比较强大,并且提供了编码好解码的能力,并且很多著名的框架都是底层采用Netty,比如Dubbo,服务提供者和消费者之间的通信。淘宝的消息中间件 RocketMQ 的消息生产者和消息消费者之间

  • 易用性好
  • 性能好
  • 健壮性好
  • 安全性好

UDP协议实战

这个Demo我大概研究了3天的时间,中途的时候有坚持不住的感觉,实在是没有接触过!但是通过我不懈努力,让我给搞定了!!!!!
我们项目主要是针对的是服务端,但是由于设备还没有下来得原因我只能自己模拟客户端,然后让他们直接进行通信,首先看服务端。


服务端

首先说一下大体的过程
1有一个boostrap服务者
2有两个干活的,也就是处理IO的,一个是boss用于监听端口,一个work干活的
3配置UDP管道,UDP管道主要使用的是NioDatagramChannel
4然后使用pipeline进行配置,可以实现编码和解码等功能,然后寻找到我们的执行的处理的Handler类
5配置我们的服务,例如选择是广播和单播,读和写缓存
6绑定端口,获取通道
7优雅的关闭服务器

/**
 * 服务监听、初始化类
 * */
public class 
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王雪芬-ghqr-264962

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值