Reactor Netty TCP 服务器端-响应式编程-011

 🤗 ApiHug × {Postman|Swagger|Api...} = 快↑ 准√ 省↓

  1. GitHub - apihug/apihug.com: All abou the Apihug   
  2. apihug.com: 有爱,有温度,有质量,有信任
  3. ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace

   The Next Generation API Development Platform - ApiHug 

api-hug-contact

Reactor Netty提供了易于使用和配置的TcpServer 。它隐藏了创建TCP服务器所需的大部分Netty的功能,并增加了Reactive Streams背压。

一下例子镜像自 reactor netty 官方demo 在 gitee 镜像: TCP Server 例子open in new window

TCP(Transmission Control Protocol 传输控制协议)

特点:

  1. TCP是面向连接的服务,可靠的进程到进程通信的协议(重传机制)
  2. TCP报文段封装在IP数据包中
  3. IP首部 + TCP报文段(包含TCP包头,应用层数据)

#创建

public class Application {public static void main(String[] args) {DisposableServer server =TcpServer.create() // <1>.bindNow(); // <2>server.onDispose().block();}
}
  1. 创建一个TcpServer 实例用来做配置操作。
  2. 使用阻塞等待的方式启动服务器,直到初始化完成。

返回的 DisposableServer 提供了简单的服务器API,包括disposeNow() ,这个方法可以以阻塞等待的方式来关闭服务器。

#Host & Port

想要设置特定host和port,您可以用下面的方式来配置TCP服务器:

public class Application {public static void main(String[] args) {DisposableServer server =TcpServer.create().host("localhost") // <1>.port(8080) // <2>.bindNow();server.onDispose().block();}
}
  1. 配置TCP服务器的host
  2. 配置TCP服务器的port

还可多端口服务:

public class MultiAddressApplication {public static void main(String[] args) {TcpServer tcpServer = TcpServer.create();DisposableServer server1 =tcpServer.host("localhost") // <1>.port(8080) // <2>.bindNow();DisposableServer server2 =tcpServer.host("0.0.0.0") // <3>.port(8081) // <4>.bindNow();Mono.when(server1.onDispose(), server2.onDispose()).block();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/10961.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch图像分类模型模型实时在线验证代码

1.训练并保存自己的模型 保存的模型格式为&#xff1a;XXX.pth torch.save(model, "./weight/last.pth")if best_acc <(validation_acc / len_val):torch.save(model, "./weight/best.pth")2.转化为ONNX格式 2.1环境安装&#xff08;window10&#x…

一款简约大气的个人单页介绍主页(附加源码)

一款简约大气的个人单页介绍主页&#xff08;附加源码&#xff09; 效果图部分源码领取源码下期更新预报 效果图 部分源码 .box_bg{width: 100%;height: 100%; }.wenzi{text-align: center;float: left;display: inline;width: 112px;line-height: 48px; } .wenzi2{text-align…

Hikyuu高性能量化研究框架助力探索

Hikyuu Quant Framework 是一款基于C/Python的开源量化交易分析与研究工具&#xff0c;主要用于A股市场的交易策略分析与回测&#xff0c;目前不支持期货等&#xff0c;需要自行改造。 Hikyuu的目标 Hikyuu的最初目的是为了快速对A股全市场股票进行策略回测和验证&#xff0c…

国内镜像地址 Docker、Conda、Node

国内主要系统、软件、开发框架镜像地址&#xff0c;包括 NPM、Centos、Ubuntu、Docker、PIP、Homebrew等。 Conda镜像 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.e…

【C++11】列表初始化、右值引用的详细讲解(上)

前言 在一开始学C之前我们就简单的了解了一下C的发展历史。 相比较而言&#xff0c;C11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全&#xff0c;不仅功能更强大&#xff0c;而且能提升程序员的开发效率加了许多特性&#xff0c;约140个新特性。使得C…

《A data independent approach to generate adversarial patches》论文分享(侵删)

原文链接&#xff1a;A data independent approach to generate adversarial patches | Machine Vision and Applications author{Xingyu Zhou and Zhisong Pan and Yexin Duan and Jin Zhang and Shuaihui Wang}, 一、介绍 在图像识别领域&#xff0c;与数字域中的攻击相比…

【C++杂货铺铺】AVL树

目录 &#x1f308;前言&#x1f308; &#x1f4c1; 概念 &#x1f4c1; 节点的定义 &#x1f4c1; 插入 &#x1f4c1; 旋转 1 . 新节点插入较高左子树的左侧---左左&#xff1a;右单旋 2. 新节点插入较高右子树的右侧---右右&#xff1a;左单旋 3. 新节点插入较高左…

BM5 合并k个已排序的链表

描述 合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。 数据范围&#xff1a;节点总数 0≤&#x1d45b;≤50000≤n≤5000&#xff0c;每个节点的val满足 ∣&#x1d463;&#x1d44e;&#x1d459;∣<1000∣val∣<1000 要求&#xff1a;时间复杂度 &am…

工业级路由器的穿透力是不是更强(原创科普)

今天我想和大家聊聊工业级路由器的一个重要特性——穿透力。作为一名从事工业网络通信的工程师,我发现很多用户在选择工业级路由器时,都会问到一个问题:"工业级路由器的穿透力是不是更强?"下面就让我来为大家解答这个疑问。当然如果有通信产品需要也可以关注星创易联…

Kafka效率篇-提升效率三板斧

kafka在效率上做了很多的努力。最初的一个使用场景是处理网页上活跃的数据&#xff0c;它往往有非常大的体量&#xff0c;每个页面都能产生数十条写入。而且我们假设每条消息都会被至少一个消费者消费&#xff08;通常是多个&#xff09;&#xff0c;因此&#xff0c;我们努力让…

二维费用背包分组背包

二维费用背包&分组背包 一定要做的

基于Python的简单自动聊天机器人的设计与实现

基于Python的简单自动聊天机器人的设计与实现 Design and Implementation of a Simple Chatbot using Python 完整下载链接:基于Python的简单自动聊天机器人的设计与实现 文章目录 基于Python的简单自动聊天机器人的设计与实现摘要第一章 引言1.1 研究背景1.2 研究目的1.3 研…

WPF之页的使用

1,Page介绍。 Page直接从FrameworkElement中派生出来&#xff0c;WIndow从ContentControl中派生。 [Localizability(LocalizationCategory.Ignore)]public class Window : ContentControl, IWindowService{....} [ContentProperty("Content")]public class Page : Fr…

真要这么卷?某国产大模型定价下调90%,百万 tokens 只需 1 元!

就在刚刚&#xff0c;国内明星AI公司——智谱AI官宣重磅炸弹&#xff1a; 将能力对标GPT3.5-Turbo的GLM-3的大模型API调用价格最高下调90%&#xff0c;价格仅为原来的十分之一&#xff01; 废话不多说&#xff0c;直接上图&#xff1a; 官网地址&#xff1a;https://open.big…

java 数组和ArrayList类

Java中的数组和ArrayList类都是用于存储一组元素的数据结构,但它们之间有一些重要的区别。 Java中的数组和ArrayList类 类似于c++中的std::array和std::vector. 数组: 数组是一种固定大小的数据结构,一旦创建,其大小不能改变。数组可以存储基本数据类型(如int、double等…

Java实战:递归查找指定后缀名的文件

在日常的软件开发中&#xff0c;经常需要处理文件操作。假设我们有一个需求&#xff1a;从一个包含大量JSON文件的文件夹中提取出所有的JSON文件以进行进一步处理。本文将介绍如何利用Java编写一个高效的方法来递归查找指定后缀名的文件。 代码实现&#xff1a; import java.i…

机器视觉技术精准测量点胶高度与宽度:提升生产质量的新利器

在现代化生产线中&#xff0c;点胶工艺是许多产品制造过程中的重要环节。点胶的高度和宽度直接影响到产品的质量和性能。传统的测量方法往往效率低下、精度不高&#xff0c;而机器视觉技术的引入&#xff0c;为点胶高度和宽度的测量带来了革命性的变革。本文将探讨机器视觉如何…

Linux 操作系统MySQL 数据库1

1.MySQL 数据库 数据库是“按照数据结构来组织、 存储和管理数据的仓库”。 是一个长期存储在计算机内的、 有组织的、 可共享的、 统一管理的大量数据的集合。 它的存储空间很大&#xff0c; 可以存放百万条、 千万条、 上亿条数据。 但是数据库并不是随意地将数据进行…

【Qt 学习笔记】Qt常用控件 | 容器类控件 | Group Box的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 容器类控件 | Group Box的使用及说明 文章编号&#xff…

static关键字作用

1. 静态局部变量 在函数内部定义的静态局部变量在函数调用结束后不会被销毁&#xff0c;而是保留其值&#xff0c;直到程序结束。在下次函数调用时&#xff0c;该变量的值仍然保留。这使得静态局部变量具有跨越函数调用的“记忆”功能。 2. 静态全局变量 在全局作用域中定义的…