Netty客户端发送数据给服务器的两个通道(1)

这篇具有很好参考价值的文章主要介绍了Netty客户端发送数据给服务器的两个通道(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

EventLoopGroup group = new NioEventLoopGroup();// 设置的连接group。

Bootstrap bootstrap = new Bootstrap().group(group).option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 10000) // 超时时间。

.channel(NioSocketChannel.class).handler(new ChannelInitializer() {

@Override

public void initChannel(SocketChannel ch) throws Exception {

ch.pipeline().addLast(new JsonObjectDecoder());

ch.pipeline().addLast(new StringEncoder(CharsetUtil.UTF_8));// String解码。

ch.pipeline().addLast(new StringDecoder(CharsetUtil.UTF_8));// String解码。

ch.pipeline().addLast(new MyChannelHandlerAdapter());//

}

});

try {

System.out.println(“客户端连接服务器…”);

ChannelFuture channelFuture = bootstrap.connect(“127.0.0.1”, SERVER_PORT)

.addListener(new ChannelFutureListener() {

public void operationComplete(ChannelFuture future) throws Exception {

if (future.isSuccess()) {

// 第一种方法。

// Netty在这里发送数据。

// sendDataToServer(future.channel());

}

}

}).sync();

// 等待连接关闭。

channelFuture.channel().closeFuture().sync();

} catch (Exception e) {

e.printStackTrace();

}

}

/**

  • 发送数据到服务器端。

  • @throws Exception

*/

private void sendDataToServer(Channel channel) throws Exception {

Date date = new Date(System.currentTimeMillis());

SimpleDateFormat sdf = new SimpleDateFormat(“MM-dd,HH:mm:ss:SSS”);

while (true) {

date.setTime(System.currentTimeMillis());

channel.writeAndFlush(“客户端@” + sdf.format(date));

System.out.println(“客户端发送数据:” + sdf.format(date));

Thread.sleep(1000);

}

}

private class MyChannelHandlerAdapter extends ChannelHandlerAdapter {

// 连接激活。

@Override

public void channelActive(ChannelHandlerContext ctx) throws Exception {

super.channelActive(ctx);

System.out.println(“channelActive:” + ctx.channel().remoteAddress());

// 第二种方法。

// 连接可用激活后,Netty开始往服务器端发送数据。

sendDataToServer(ctx.channel());

}

@Override

public void channelInactive(ChannelHandlerContext ctx) throws Exception {

super.channelInactive(ctx);

System.out.println(“channelInactive:” + ctx.channel().remoteAddress());

}

@Override

public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {

super.channelRead(ctx, msg);

}

@Override

public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {

super.channelReadComplete(ctx);

System.out.println(ctx.channel().remoteAddress() + “读写完成”);

}

}

public static void main(String[] args) {

try {

new App();

} catch (Exception e) {

e.printStackTrace();

}

}

// 服务器端。演示作为服务器接受来自客户端的数据。

private class Server extends Thread {

private ServerSocket serverSocket;

public Server() throws Exception {

serverSocket = new ServerSocket(SERVER_PORT);

}

@Override

public void run() {
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

Netty客户端发送数据给服务器的两个通道(1),程序员,服务器,运维

Netty客户端发送数据给服务器的两个通道(1),程序员,服务器,运维

Netty客户端发送数据给服务器的两个通道(1),程序员,服务器,运维

Netty客户端发送数据给服务器的两个通道(1),程序员,服务器,运维

Netty客户端发送数据给服务器的两个通道(1),程序员,服务器,运维

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

Netty客户端发送数据给服务器的两个通道(1),程序员,服务器,运维
如何成为Android高级架构师!

架构师必须具备抽象思维和分析的能力,这是你进行系统分析和系统分解的基本素质。只有具备这样的能力,架构师才能看清系统的整体,掌控全局,这也是架构师大局观的形成基础。 你如何具备这种能力呢?一是来自于经验,二是来自于学习。

架构师不仅要具备在问题领域上的经验,也需要具备在软件工程领域内的经验。也就是说,架构师必须能够准确得理解需求,然后用软件工程的思想,把需求转化和分解成可用计算机语言实现的程度。经验的积累是需要一个时间过程的,这个过程谁也帮不了你,是需要你去经历的。

但是,如果你有意识地去培养,不断吸取前人的经验的话,还是可以缩短这个周期的。这也是我整理架构师进阶此系列的始动力之一。


成为Android架构师必备知识技能

Netty客户端发送数据给服务器的两个通道(1),程序员,服务器,运维

对应导图的学习笔记(由阿里P8大牛手写,我负责整理成PDF笔记)

Netty客户端发送数据给服务器的两个通道(1),程序员,服务器,运维

部分内容展示

《设计思想解读开源框架》

  • 目录
    Netty客户端发送数据给服务器的两个通道(1),程序员,服务器,运维
  • 热修复设计
    Netty客户端发送数据给服务器的两个通道(1),程序员,服务器,运维
  • 插件化框架设计
    Netty客户端发送数据给服务器的两个通道(1),程序员,服务器,运维
    《360°全方面性能优化》
    Netty客户端发送数据给服务器的两个通道(1),程序员,服务器,运维
  • 设计思想与代码质量优化
    Netty客户端发送数据给服务器的两个通道(1),程序员,服务器,运维
  • 程序性能优化
    Netty客户端发送数据给服务器的两个通道(1),程序员,服务器,运维

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!文章来源地址https://www.toymoban.com/news/detail-851405.html

-1712667244968)]

  • 设计思想与代码质量优化
    [外链图片转存中…(img-rbdAo7CG-1712667244968)]
  • 程序性能优化
    [外链图片转存中…(img-OUJWWXgo-1712667244968)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

到了这里,关于Netty客户端发送数据给服务器的两个通道(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Netty构建TCP和UDP服务器和客户端

    Netty是一个基于Java NIO实现的网络通信框架,提供了高性能、低延迟的网络通信能力。使用Netty构建TCP和UDP服务器和客户端非常简单,下面是一个简单的示例代码: 构建TCP服务器 构建TCP客户端 构建UDP服务器 构建UDP客户端   上述示例代码中,分别定义了一个TCP服务器、TCP客户

    2024年02月16日
    浏览(37)
  • Netty示例教程:结合Spring Boot构建客户端/服务器通信

    当涉及到在客户端/服务器应用程序中使用Netty进行通信时,以下是一个结合Spring Boot的示例教程,演示如何使用Netty构建客户端和服务器应用程序。 简介 本教程将指导您如何使用Netty结合Spring Boot构建客户端和服务器应用程序。通过Netty的可靠网络通信功能,您可以轻松构建高

    2024年02月15日
    浏览(34)
  • Qt实现客户端与服务器消息发送

    里用Qt来简单设计实现一个场景,即: (1)两端:服务器QtServer和客户端QtClient (2)功能:服务端连接客户端,两者能够互相发送消息,传送文件,并且显示文件传送进度。 环境:VS20013 + Qt5.11.2 + Qt设计师 先看效果: 客户端与服务器的基本概念不说了,关于TCP通信的三次握

    2024年02月11日
    浏览(40)
  • TCP通信实现客户端向服务器发送图片

    TCP通信: 1. TCP 协议通信交互流程: 具体的流程如下: (1)服务器根据地址类型(ipv4、ipv6)、socket 类型、协议创建 socket. (2)服务器为 socket 绑定 ip 地址和端口号。 (3)服务器 socket 监听端口号的请求,随时准备接受来自客户端的连接,此时服务器的 socket 处于关闭状态

    2024年02月13日
    浏览(44)
  • MQTT协议-发布消息(服务器向客户端发送)

    发布消息报文组成:https://blog.csdn.net/weixin_46251230/article/details/129414158 在了解了发布信息的PUBLISH报文后,就可以分析出阿里云服务器向本地客户端发送的报文数据了 实验前需要在阿里云创建产品和设备,并创建简单的温度和湿度物模型:https://blog.csdn.net/weixin_46251230/article/de

    2024年02月06日
    浏览(44)
  • 当在本地,向服务器发送信息时,服务器接受信息返回给客户端,此时采用多行读取时,客户端接收不到Server的信息

        此时的服务器还在等待输入,客户端也在等待服务器的应答,产生死锁,僵持不下。 经过一番尝试后发现, 当使用单行读取的时候,使用 bufferedWriter.newLine(); 此时就不用关闭socket的输出流 , 即socket.shutdownOutput();可以省略,当然写上去也没错。 当使用多行读取的时候,

    2024年02月07日
    浏览(35)
  • Flask框架小程序后端分离开发学习笔记《3》客户端向服务器端发送请求

    Flask是使用python的后端,由于小程序需要后端开发,遂学习一下后端开发。 可以看到上述代码构建了一个HTTP请求,在发送之前需要将发送之前,使用http_request.encode(‘utf-8’)。 这是因为我们在这构建的请求是字符串文本,而电脑只认识二进制0和1,所以需要将其数据类型转换

    2024年01月22日
    浏览(42)
  • Linux Jellyfin 硬解4K HEVC HDR报错,“该客户端与媒体不兼容,服务器未发送兼容的媒体格式”

    关闭色调映射。视频可以正常播放,缺点:视频色彩异常 安装对应显卡的OpenCL运行库,显示正常 inter显卡安装:intel-opencl-icd,linux命令:apt-get install intel-opencl-icd NVIDIA显卡安装:nvidia-opencl-icd,命令:apt-get install nvidia-opencl-icd 重启jellyfin服务器后解决问题 其他平台自行搜索安

    2024年02月11日
    浏览(66)
  • Java Websocket发送文件给Vue客户端接收并上传,实现检测U盘插入并将指定文件上传到服务器功能

    应用环境: B/S架构 需求描述: 1、判断U盘接入 2、扫描U盘指定文件,将满足条件的文件发送给服务器 解决思路: 1、因为bs架构,无法获取本机资源,计划在U盘所在服务器部署websocket服务 2、websocket服务扫描u盘,拿到指定文件,使用session.getBasicRemote().sendBinary(data)分批发送二

    2024年01月15日
    浏览(50)
  • netty的TCP服务端和客户端实现

    2024年02月21日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包