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();
  }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024第八季完美童模 上海翎秀赛区 初赛 火热启动

第八季完美童模新篇启航&#xff0c;打响2024全明星联赛第三站的火热赛程&#xff01;本季全球赛亮点纷呈&#xff0c;带领全球选手体验暑期最高规格国民赛&#xff01;6季上榜CCTV新闻报道&#xff0c;稳坐行业赛事头把交椅&#xff1b;分赛区遍布全球各地&#xff0c;覆盖350…

【Linux】自动化构建工具make/Makefile和git介绍

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343&#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/qinjh_/category_12625432.html 目录 前言 Linux项目自动化构建工具-make/Makefile 举例 .PHONY 常见符号 依赖关系…

前端报错 SyntaxError: Unexpected number in JSON at position xxxx at JSON.parse

问题描述​ 控制台提示 SyntaxError: Unexpected number in JSON at position xxxx at JSON.parse 问题原因​ 原因&#xff1a;JSON 数据格式错误&#xff0c;是否符合 JSON 格式。 解决方法​ 应为json格式数据 什么是json格式数据 JSON&#xff08;JavaScript Object …

使用sqlmodel实现唯一性校验2,插入之前检查是否已存在

虽然之前添加唯一性校验的方法能够解决数据唯一的问题&#xff0c;但是如果忘了处理异常&#xff0c;则可能会导致程序崩溃。 在此基础上&#xff0c;我们可以在插入数据之前检查该数据是否已存在。 原来的代码&#xff1a; from sqlmodel import Field, Session, SQLModel,…

基于Python实现蔬菜水果识别

蔬菜水果识别在农业生产、食品加工和市场销售等领域具有重要意义。随着计算机视觉和机器学习技术的发展,利用图像识别技术实现蔬菜水果的自动化识别已成为可能。 目录 引言研究背景问题陈述研究目标文献综述蔬菜水果识别的相关研究概述基于计算机视觉和机器学习的图像识别方法…

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第20课-烟花插件

【WEB前端2024】开源智体世界&#xff1a;乔布斯3D纪念馆-第20课-烟花插件 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎&am…

光纤VS紫外:如何选择最适合您生产线的激光打标机?

光纤激光打标机和紫外激光打标机在制造业中都有其独特的应用&#xff0c;但两者在原理、特点和应用范围上存在一些差异。 光纤激光打标机是一种采用光纤输出激光&#xff0c;并通过高速扫描振镜系统实现打标功能的新一代激光打标机系统。它电光转换效率高&#xff0c;达到30%以…

鸿蒙内核源码分析(gn应用篇) | gn语法及在鸿蒙的使用

gn是什么? gn 存在的意义是为了生成 ninja,如果熟悉前端开发,二者关系很像 Sass和CSS的关系. 为什么会有gn,说是有个叫even的谷歌负责构建系统的工程师在使用传统的makefile构建chrome时觉得太麻烦,不高效,所以设计了一套更简单,更高效新的构建工具gnninja,然后就被广泛的使用…

轻松掌握RAID级别

一、官方说明&#xff1a; RAID&#xff08;英文全称 Redundant Array of Independent Disks&#xff09;翻译成中文&#xff08;独立磁盘冗余阵列&#xff09;。 RAID 是一种将多块独立磁盘&#xff0c;组成一组逻辑磁盘的技术。RAID 级别分为 0、1、3、5、6等&#xff0c;可…

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

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

健康行业CRM软件-保健行业CRM解决方案示例

Z公司面临客户信息管理和销售效率的挑战&#xff0c;提出使用ZohoCRM解决方案。ZohoCRM可集中管理客户信息、自动化销售流程并优化客户关系&#xff0c;提供数据分析和市场趋势洞察&#xff0c;帮助Z公司提升销售效率和客户满意度。 一、健康公司痛点 Z公司作为一家专注于特膳…

光数据传送器|光通讯传感器极速版OPT系列尺寸与安装步骤

光数据传送器|光通讯传感器极速版OPT系列是利用可见光及不可见光作为信息载体&#xff0c;无需光纤、网线等有线介质&#xff0c;在空中直接进行信息传输的无线方式通信。驱动光源以可见光及不可见光的高速明暗变化来传输数字信号&#xff0c;以极高光频率双向发射接收光信号&a…

CSRF漏洞原理攻击与防御

CSRF&#xff08;Cross-site request forgery&#xff09;跨站请求伪造&#xff1a;也被称为“One Click Attack”或者Session Riding&#xff0c; 通常缩写为CSRF或者XSRF&#xff0c;是一种对网站的恶意利用。尽管听起来像跨站脚本&#xff08;XSS&#xff09;&#xff0c;但…

设计模式-工厂模式设计与详解

一、设计模式介绍 设计模式是我们开发中常常需要面对的核心概念&#xff0c;它们是解决特定问题的模板或者说是经验的总结。这些模式被设计出来是为了让软件设计更加清晰、代码更加可维护且能应对未来的变化。良好的设计模式不仅能解决重复代码的问题&#xff0c;还能使团队中…

408数据结构-哈夫曼树 自学知识点整理

前置知识&#xff1a;二叉树的概念、性质与存储结构 哈夫曼树 哈夫曼树的定义 首先需要明确几个概念。 路径&#xff1a;从树中的一个结点到另一个结点之间的分支构成这两个结点之间的路径。 路径长度&#xff1a;路径上的分支数目称为路径长度。 权(值)&#xff1a;树中结点…

实时追踪维修进度,报修管理小程序让你省心又省力!

随着生活、工作节奏的日益加快&#xff0c;日常的售后报修、故障报修处理流程给我们带来种种困扰。我们都知道大多数企业、个人用户还在使用传统报修方式&#xff0c;如电话报修、纸质报修单等方式&#xff0c;不仅效率低下&#xff0c;而且难以追踪维修进度&#xff0c;给我们…

无人机+自组网:空地点对点无人机通信解决方案

随着智能化技术的迅速发展, 无人化设备在战场上发挥的作用日益突显。在近期发生的多次局部战争中, 无人设备代替人类承担了多项危险且复杂的攻击任务, 达到 “兵不血刃” 的效果. 2020 年 1 月 3 日, 美军利用无人机执行了刺杀伊朗 “圣城旅” 指挥官苏莱曼尼行动. 纳戈尔诺 - …

48.乐理基础-音符的组合方式-休止符

休止符 音乐中总有一些停顿的地方&#xff0c;一次停顿多久是创作人固定好的&#xff0c;休止符就是用来表示每一次停顿多久 需要停顿的位置就用 0 来表示&#xff0c;数字 0 就是简谱中的休止符 音符有全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符等&…

海外静态IP购买:全面解析与购买指南

在当今这个信息化、网络化的时代&#xff0c;IP地址成为了网络世界中不可或缺的一部分。随着跨国业务的不断增多&#xff0c;海外静态IP的需求也日益增长。海外静态IP&#xff0c;作为一种稳定、可靠的网络资源&#xff0c;为企业在全球范围内的业务拓展提供了强有力的支持。本…

实训八:使用jQuery技术实现企业信息展示系统的相关功能

实训八:使用jQuery技术实现企业信息展示系统的相关功能 1.题目 使用jQuery技术实现企业信息展示系统的相关功能。 2.目的 (1)掌握jQuery的基本知识。 (2)掌握jQuery的应用方法。 (3)进一步理解Ajax程序的设计方法。 (4)会利用所学知识设计简单的应用程序。 3.内容 用jQuery技术…