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

使用说明

软件架构说明

  1. 使用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 详解相关推荐

  1. 华为关闭telnet命令_华为s5720配置telnet命令详解

    华为s5720配置telnet命令详解 以本地PC登录远程的Telnet_Server为例,Telent登录配置如下: 1. 使能服务器功能 system-view [HUAWEI] sysname ...

  2. Telnet协议详解及使用C# 用Socket 编程来实现Telnet协议 - Atpking - 博客园

    Telnet协议详解及使用C# 用Socket 编程来实现Telnet协议 - Atpking - 博客园 Telnet协议详解及使用C# 用Socket 编程来实现Telnet协议 - Atpkin ...

  3. netty系列之:netty中的Channel详解

    文章目录 简介 Channel详解 异步IO和ChannelFuture Channel的层级结构 释放资源 事件处理 总结 简介 Channel是连接ByteBuf和Event的桥梁,netty中的 ...

  4. netty系列之:netty中的ByteBuf详解

    文章目录 简介 ByteBuf详解 创建一个Buff 随机访问Buff 序列读写 搜索 其他衍生buffer方法 和现有JDK类型的转换 总结 简介 netty中用于进行信息承载和交流的类叫做Byte ...

  5. Netty的Socket编程详解-搭建服务端与客户端并进行数据传输

    场景 Netty在IDEA中搭建HelloWorld服务端并对Netty执行流程与重要组件进行介绍: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...

  6. Netty架构与原理详解

    本文来详细说下netty架构设计与原理 文章目录 概述 Netty 基础 Netty 是什么 Netty 的应用场景 Java 中的网络 IO 模型 Java NIO API 简单回顾 缓冲区(Buf ...

  7. Telnet协议详解

    这因为有个任务涉及到使用telnet 来连接远端的路由器,获取信息,之后进行处理. 所以需要写一个自动telnet登录到远端,之后获取信息进行处理的程序. 自己C++ 一塌糊涂,所以几乎最开始就没打算 ...

  8. telnet命令详解

    http://xzc.2000y.com/mb/1/readnews.asp?newsid=694967 除了在Telnet是如何工作的例子介绍的以外,Telnet还有很多的特点.Telnet可发送除 ...

  9. 【图文详解】第一个Java程序HelloWorld详解,写Java程序需要注意什么

    1.先写第一个HelloWorld程序,输出语句 "HelloWorld!!! ",并编译运行. public class HelloWorld{ //声明定义一个类,类型为共有的 ...

最新文章

  1. 移动网站开发中常用的10段JavaScript代码
  2. MVC后台创建Json(List),前台接受并循环读取
  3. 数据结构与算法(一)——排序
  4. javaweb学习中的路径问题
  5. jQuery按钮隐藏与显示
  6. 在Tomcat启动时直接创建servlet(二)
  7. comsol如何定义狄利克雷边界_如何使用拓扑优化结果创建几何模型
  8. [刘阳Java]_CSS数字分页效果
  9. VMware 修复可窃取管理员凭据的高危漏洞
  10. vue3.0 axios 引入及使用
  11. python可视化网页设计_python可视化工具
  12. 底层逻辑 MATLAB 的句柄是什么
  13. mysql安全补丁,Oracle发布了本季安全补丁,包含了mysql在内的高危漏洞补丁
  14. 电容或电感的电压_纯电阻、纯电感和纯电容电路
  15. JavaFX: Alert 弹窗
  16. python写鼠标宏_win操作(1)-键盘鼠标输入
  17. 内网渗透之域内信息收集
  18. Java实战项目《瑞吉外卖》
  19. 阴阳师进不去怎么办?阴阳师海外打不开解决办法!
  20. 计算机页面添加文字水印在哪,怎么添加水印-Word小技巧-快速添加高大上的水印...

热门文章

  1. NGUI ListEventDelegate 小坑
  2. 太阳能控制器原理图_太阳能人体感应壁灯的电路设计
  3. influxdb java_身为Java程序员想拿高薪?这份分布式的pdf你一定不能错过
  4. centos7 yum源_搭建内网Linux CentOS yum源,摆脱依赖包困扰
  5. poj2752 字符串子KMP应用
  6. C++大师Lippman:我对中国程序员的忠告
  7. Linux的vi命令作用?
  8. MySQL导出数据到文件中
  9. 五步让你玩转CocoaPods
  10. Objective-C单例实现