Netty-5-客户端的创建并且接受服务端的数据
下面的示例内容是创建了两个客户端,以NetAssist作为服务端,服务端向哪个客户端发信息,哪个客户端就把自己的IP地址返回给服务端
1.首先创建一个InboundHandler,来处理输入进来的信息
public class MyClientHandler1 extends ChannelInboundHandlerAdapter {@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf bb = (ByteBuf) msg;int len = bb.readableBytes();byte[] bytes = new byte[len];bb.readBytes(bytes);System.out.println("读到的内容:" + new String(bytes, "utf-8"));String result = ctx.channel().localAddress().toString();ByteBuf rr = Unpooled.copiedBuffer(result.getBytes());ctx.writeAndFlush(rr);}
}
2.创建一个客户端,启动main方法
public class TestClient1 {public static void main(String[] args) throws InterruptedException {EventLoopGroup group = new NioEventLoopGroup();Bootstrap b = new Bootstrap();b.group(group).channel(NioSocketChannel.class).handler(new MyClientHandler1());ChannelFuture f = b.connect("127.0.0.1", 9999).sync();f.channel().closeFuture().sync();}
}
3.再创建一个客户端,也启动main方法
public class TestClient2 {public static void main(String[] args) throws InterruptedException {EventLoopGroup group = new NioEventLoopGroup();Bootstrap b = new Bootstrap();b.group(group).channel(NioSocketChannel.class).handler(new MyClientHandler1());ChannelFuture f = b.connect("127.0.0.1", 9999).sync();f.channel().closeFuture().sync();}
}
使用网络助手作为服务端进行调试,将客户端选择1图所示,点击发送,会返回1图连接的客户端地址,客户端选择2图所示,点击发送,会返回2图连接的客户端地址
其实和之前的文章没什么太大区别,只不过这是客户端,之前的是服务端,值得一提的是文章并没有演示客户端连接服务端的时候,客户端先发送到服务端,因为和之前的文章是一样的,可以直接从active方法中进行这一操作
Netty-5-客户端的创建并且接受服务端的数据相关推荐
- Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
场景 Netty在IDEA中搭建HelloWorld服务端并对Netty执行流程与重要组件进行介绍: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...
- Android 客户端与服务端的数据交互问题
Android客户端是如何与服务端的数据进行交互的呢? 一般就是客户端向服务端发送请求,服务端对数据进行相关处理,返回json数据返回给客户端,客户端再进行相关操作. 说明:主要是用登录功能来进行详解 ...
- 编写Java程序,使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的场景(用户充当客户端,QQ 小冰充当服务端)
查看本章节 查看作业目录 需求说明: 小冰是微软公司研发的人工智能机器人,被腾讯公司加入 QQ 群后,立即受到千万网友的喜爱.现在使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的 ...
- UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)
目录 一.使用UE4建立TCP客户端 二.使用网络调试助手建立服务端 三.基于网络调试助手的服务端与UE客户端通信 四.基于python的TCP服务端与UE客户端通信 一.使用UE4建立TCP客户端 ...
- 学习 ET(1)- 开源的游戏客户端(基于 unity3d)服务端双端框架
我: 客户端程序员,15+ 以上 C++ 编码经历, 还算扎实.Unity 编码经历 1年,C# 没有单独学过.真不想离开C++的世界,大形势驱使进入了Unity+C#世界. ET - 开源的游戏客户 ...
- 联众服务器超时中断,http连接中客户端中断了请求,服务端会中断执行吗?超时时间设置?...
由于http是基于tcp的,在tcp中,客户端中断了连接,服务端是无法感知的,只能通过发心跳包来检测,而显然我们的nginx是没有发心跳包的,所以,包括nginx,php-fpm都是不知道客户端已断开 ...
- java Socket Tcp示例三则(服务端处理数据、上传文件)
示例一: package cn.itcast.net.p5.tcptest; import java.io.BufferedReader; import java.io.IOException; im ...
- 网络游戏《丛林战争》开发与学习之(二):粘包分包现象以及服务端解析数据
本篇博客主要介绍数据发送和接收时遇到的粘包和分包现象,以及实现服务端解析收到消息的代码,本节的代码是在第(一)部分的基础上进行的,可以先浏览下第一部分https://blog.csdn.net/s13 ...
- ajax 获取java数据_如何使用Ajax从服务端获取数据
在本文中将给出一个例子来介绍使用 Ajax 技术从服务端获得数据的三种方法.这个例子很简单,就是两个选择框(html中的标签),通过选中第一个select的某一项后,会从服务端得到一些数据,并加载到第 ...
最新文章
- 大盘点|YOLO 系目标检测算法总览
- JavaScript兼容HTML代码的注释
- 爬虫python代码-一则python3的简单爬虫代码
- windows系统numpy的下载与安装教程
- 计划边际码(Scheduling Margin Key)
- oracle solaris 内核 源码,直接安装内核区域
- 内含福利|CSDN携手字节跳动:云原生Meetup北京站报名热烈启动,1月8日见!
- pipedreader_Java PipedReader ready()方法与示例
- C++实现俄罗斯方块
- 开课吧Java课堂之什么是搜索字符串
- SilkTest 对 Excel 表操作的两种方式
- jdbc连接数据库以及crud(简单易懂,本人亲测可用 有源代码和数据库)
- iOS 集成友盟分享图片链接为http时无法加载问题解决
- docker 安装svnserver
- Matlab采用梯度算子、拉普拉斯算子、Sobel算子及Prewitt算子对图像进行锐化
- 史上最好用的GIF工具——ScreenToGif
- 修改mysql的authen_MySQL数据库出现Authentication plugin怎么办
- python进程池apply与apply_async的区别
- 程序设计基础-SDUT-实验3-while循环
- 最近计算机速度测试情况,WiFi速度测试测试测试互联网速度多少兆字节
热门文章
- Python使用pytest框架进行单元测试
- JDK8新特性(十四)之日期时间API
- 筑龙网下载的文件格式是php_为什么使用迅雷下载的文件都是PHP格式的
- 荣耀v10玩flash游戏_沫子玩王者荣耀被打哭?直言这个游戏比吃鸡还难玩
- class action extends mysql{_java Action 请求封装(二)
- matlab中对正弦信号采样,正弦信号抽样的实验报告(共9篇).doc
- java三个技术平台_Java的3个平台有什么区别
- Mybatis Plus语法+示例
- 函数指针的定义和函数指针数组
- Zabbix监控Oracle 连接数