netty 之 telnet HelloWorld 详解
2019独角兽企业重金招聘Python工程师标准>>>
依赖工具
Maven
Git
JDK
IntelliJ IDEA
源码拉取
从官方仓库 https://github.com/netty/netty Fork
出属于自己的仓库。为什么要 Fork
?既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。:smiling_imp:
使用 IntelliJ IDEA
从 Fork
出来的仓库拉取代码。
本文使用的 Netty 版本为 4.1.26.Final-SNAPSHOT
。
Maven Profile
打开 IDEA 的 Maven Projects ,选择对应的 Profiles 。如下图所示:
jdk8
:笔者使用的 JDK 版本是 8 ,所以勾选了jdk8
。如果错误的选择,可能会报如下错误:java.lang.NoSuchMethodError: java.nio.ByteBuffer.clear()Ljava/nio/ByteBuffer
linux
: 选择对应的系统版本。:smiling_imp: 笔者手头没有 windows 的电脑,所以不知道该怎么选。
修改完成后,点击左上角的【刷新】按钮,进行依赖下载,耐心等待...
解决依赖报错
在 codec-redis
模块中,类 FixedRedisMessagePool 会报如下类不存在的问题:
import io.netty.util.collection.LongObjectHashMap; import io.netty.util.collection.LongObjectMap;
具体如下图所示:
解决方式如下:
cd common; mvn clean compile;
跳转到
common
模块中,编译生成对应的类。为什么可以通过编译生成对应的类呢,原因参见common
模块的src/java/templates/io/netty/util/collection
目录下的.template
文件。
在 Github 上,也有多个针对这个情况讨论的 issue :
《Can not find class io.netty.util.collection.LongObjectHashMap in 4.1.8.final》
《io.netty.util.collection.LongObjectHashMap not found at branch 4.1》
example 模块
在 example
模块里,官网提供了多个 Netty 的使用示例。 本文以 telnet
包下来作为示例。哈哈哈,因为最简单且完整。
netty-helloworld
使用说明
软件架构说明
使用netty实现客户端<-->服务器通信
项目结构
netty-helloworld├── client├── Client.class -- 客户端启动类├── ClientHandler.class -- 客户端逻辑处理类├── ClientHandler.class -- 客户端初始化类├── server ├── Server.class -- 服务端启动类├── ServerHandler -- 服务端逻辑处理类├── ServerInitializer -- 服务端初始化类
使用telnet与服务端进行交互
项目找到com.sanshengshui.netty.server.Server类,右键debug as启动SocketServer
打开telnet,和服务端进行交互操作
客户端与服务端交互
项目找到com.sanshengshui.netty.server.Server类,右键debug as启动Server
项目找到com.sanshengshui.netty.client.Client类,右键debug as启动Client
演示如下:
结果也如上述所说!
其它
关于netty 之 telnet HelloWorld 详解到这里就结束了。
欢迎工作一到五年的Java工程师朋友们加入Java架构开发:760940986
群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
转载于:https://my.oschina.net/u/3906190/blog/2221952
netty 之 telnet HelloWorld 详解相关推荐
- 华为关闭telnet命令_华为s5720配置telnet命令详解
华为s5720配置telnet命令详解 以本地PC登录远程的Telnet_Server为例,Telent登录配置如下: 1. 使能服务器功能 system-view [HUAWEI] sysname ...
- Telnet协议详解及使用C# 用Socket 编程来实现Telnet协议 - Atpking - 博客园
Telnet协议详解及使用C# 用Socket 编程来实现Telnet协议 - Atpking - 博客园 Telnet协议详解及使用C# 用Socket 编程来实现Telnet协议 - Atpkin ...
- netty系列之:netty中的Channel详解
文章目录 简介 Channel详解 异步IO和ChannelFuture Channel的层级结构 释放资源 事件处理 总结 简介 Channel是连接ByteBuf和Event的桥梁,netty中的 ...
- netty系列之:netty中的ByteBuf详解
文章目录 简介 ByteBuf详解 创建一个Buff 随机访问Buff 序列读写 搜索 其他衍生buffer方法 和现有JDK类型的转换 总结 简介 netty中用于进行信息承载和交流的类叫做Byte ...
- Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
场景 Netty在IDEA中搭建HelloWorld服务端并对Netty执行流程与重要组件进行介绍: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...
- Netty架构与原理详解
本文来详细说下netty架构设计与原理 文章目录 概述 Netty 基础 Netty 是什么 Netty 的应用场景 Java 中的网络 IO 模型 Java NIO API 简单回顾 缓冲区(Buf ...
- Telnet协议详解
这因为有个任务涉及到使用telnet 来连接远端的路由器,获取信息,之后进行处理. 所以需要写一个自动telnet登录到远端,之后获取信息进行处理的程序. 自己C++ 一塌糊涂,所以几乎最开始就没打算 ...
- telnet命令详解
http://xzc.2000y.com/mb/1/readnews.asp?newsid=694967 除了在Telnet是如何工作的例子介绍的以外,Telnet还有很多的特点.Telnet可发送除 ...
- 【图文详解】第一个Java程序HelloWorld详解,写Java程序需要注意什么
1.先写第一个HelloWorld程序,输出语句 "HelloWorld!!! ",并编译运行. public class HelloWorld{ //声明定义一个类,类型为共有的 ...
最新文章
- 移动网站开发中常用的10段JavaScript代码
- MVC后台创建Json(List),前台接受并循环读取
- 数据结构与算法(一)——排序
- javaweb学习中的路径问题
- jQuery按钮隐藏与显示
- 在Tomcat启动时直接创建servlet(二)
- comsol如何定义狄利克雷边界_如何使用拓扑优化结果创建几何模型
- [刘阳Java]_CSS数字分页效果
- VMware 修复可窃取管理员凭据的高危漏洞
- vue3.0 axios 引入及使用
- python可视化网页设计_python可视化工具
- 底层逻辑 MATLAB 的句柄是什么
- mysql安全补丁,Oracle发布了本季安全补丁,包含了mysql在内的高危漏洞补丁
- 电容或电感的电压_纯电阻、纯电感和纯电容电路
- JavaFX: Alert 弹窗
- python写鼠标宏_win操作(1)-键盘鼠标输入
- 内网渗透之域内信息收集
- Java实战项目《瑞吉外卖》
- 阴阳师进不去怎么办?阴阳师海外打不开解决办法!
- 计算机页面添加文字水印在哪,怎么添加水印-Word小技巧-快速添加高大上的水印...