Netty-3-服务端接受并打印telnet传递过来的字符串
数据的流通是以byte的形式流通的,本文将通过字节转换成字符串new String的方式打印出来
第一个handler,首先,往pipeline里加了第二个handler,也就是说,pipeline里有两个handler了,handler1负责接收最原始的ByteBuf对象(msg),似乎对neety来说第一个handler永远都是ByteBuf,然后将ByteBuf转换成字符串,打印该字符串,打印完毕之后,将该字符串传递到handler2中
public class MyServerHandler1 implements ChannelInboundHandler {@Overridepublic void handlerAdded(ChannelHandlerContext ctx) throws Exception {//动态往pipeline里添加一个handlerctx.pipeline().addLast(new MyServerHandler2());}@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {//因为是第一个handler,所以msg是ByteBufByteBuf bb = (ByteBuf) msg;int len = bb.readableBytes();byte[] bytes = new byte[len];bb.readBytes(bytes);String value = new String(bytes);System.out.println("channelRead值:" + value);//将一个String类型的字符串传递给第二个handlerctx.fireChannelRead(value);}
第二个handler
public class MyServerHandler2 implements ChannelInboundHandler {@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {//msg是从handler1中传递过来的String类型字符串System.out.println(objName + ":channelRead,值:" + msg);ctx.fireChannelRead(msg);}
main方法
public static void main(String[] args) throws InterruptedException {EventLoopGroup boosGroup = new NioEventLoopGroup();EventLoopGroup workerGroup = new NioEventLoopGroup();ServerBootstrap b = new ServerBootstrap();//此处new MyServerHandler1b.group(boosGroup, workerGroup).channel(NioServerSocketChannel.class).childHandler(new MyServerHandler1());ChannelFuture f = b.bind(9999).sync();f.channel().closeFuture().sync();
启动main方法,telnet命令,从键盘上按哪个字母,控制台就会打印哪个字母
Netty-3-服务端接受并打印telnet传递过来的字符串相关推荐
- android 上传文件用php程序在服务端接受(一)
php服务端接受程序..file_up.php. <?php /* require_once('lib/session_config.php');require_once('lib/flydc. ...
- 微信个人号客服系统淘宝客发单机器人sdk服务端接口列表
微信个人号客服系统淘宝客发单机器人sdk服务端接口列表 case HeartBeatReq: {// 客户端发送的心跳包heartBeatReqHandler.handleMsg(ctx, msgVo ...
- 安卓使用Socket发送中文,C语言服务端接收乱码问题解决方式
今天用安卓通过Socket发送数据到电脑上使用C语言写的服务端,发送英文没有问题,可当把数据改变成中文时,服务端接收到的数据确是乱码. 突然想到.VS的预处理使用的是ANSI编码.而安卓网络数据都是U ...
- linux netty udp服务端,Netty实现UDP服务端
### 前言 在之前的文章我已经讲过了利用`Netty`实现`UDP`客户端,大家有兴趣的话,可以参看下面文章: [Netty实现UDP客户端](https://www.jianshu.com/p/5 ...
- Netty的服务端和客户端
通过简单代码实现服务端与服务端 本文章只做简单学习交流,如工作需要,请合理配置搭建. 详细讲解在代码注释中.上货!!!! 1.引入包 pom.xml中引入 <dependency>< ...
- 移动端与PHP服务端接口通信流程设计(基础版)
为什么80%的码农都做不了架构师?>>> 针对 --->非开放性平台 --->公司内部产品 接口特点汇总: 1.因为是非开放性的,所以所有的接口都是封闭的,只对公司 ...
- 原理剖析-Netty之服务端启动工作原理分析(上)
一.大致介绍 1.Netty这个词,对于熟悉并发的童鞋一点都不陌生,它是一个异步事件驱动型的网络通信框架: 2.使用Netty不需要我们关注过多NIO的API操作,简简单单的使用即可,非常方便,开发门 ...
- java post流_Java后端HttpClient Post提交文件流 及服务端接收文件流
客户端将文件转换为流发送: 依赖的包: org.apache.httpcomponents httpclient 4.4 org.apache.httpcomponents httpmime 4.4 ...
- 区域数据导入功能(在服务端接收上传文件)
在服务端接收上传的文件 在Action中提供一个File类型的属性,名称和上传的文件输入框名称一致regionFile @Controller @Scope("prototype" ...
最新文章
- Python面试之 is 和 == 的区别
- python正则表达式匹配模式屠夫之桥_Python 编程快速上手 第 7章 模式匹配与正则表达式...
- Kaggle竞赛方案分享:如何分辨杂草和植物幼苗(转)
- customizing download debug - extraction in ERP
- [EDA] 给出一个状态机,请把它的组合进程分为2个,分别命名为COM1和COM2,其中:COM1实现对外的控制信号输出,COM2实现状态译码。
- fe文件服务器,FE File Explorer
- js 图片压缩上传(base64位)以及上传类型分类
- python读取git日志_使用python分析git log日志示例
- AD19妙用SHIFT+S查找没连的线
- 静态方法和属性可以被继承吗?
- paip.FTP服务端及客户端的使用总结
- UNIX系统V(System V)
- 富士通推出区块链技术驱动的数据存储系统(GBCAX)
- 团购网站大缩水:5058家团购网站 只剩176家
- 您可能是盗版软件的受害者——解决办法
- 10大动图:秒懂各种常用通信协议原理
- 什么软件可以支持视频转换成文字?
- 围城如社会,故事如生活
- C语言在坐标轴上输出曲线,C语言打印正弦曲线、直线、圆等等
- 变分法求解两点间直线距离最短
热门文章
- mysql 行转列 显示_mysql 行转列 (结果集以坐标显示)
- TraceEventsDB event(跟踪事件)总结
- linux oracle显示乱码,Linux下oracle显示乱码解决
- python装饰器应用_Python装饰器实现方法及应用场景详解
- centos7.8离线安装gcc
- CentOS7安装wxWidgets错误解决
- @Component注解的用法
- RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较(转)
- Linux升级php
- 普通函数的调用和函数指针的回调