一、基础定义

TCP Server模式,就是把串口转网络模块配置成一个被动等待连接的服务器

  • 角色:模块 = 服务器(Server),网络上的其他设备 = 客户端(Client)

  • 核心行为:模块在本地监听一个指定端口,等待客户端主动来连接

  • 通俗理解:模块像一个坐在前台的服务员,守着内部电话(端口号),等人打进来


二、工作流程

  1. 监听端口:模块上电后,在本地开启一个TCP端口(如默认的23端口),进入监听状态

  2. 接受连接:当有Client(如电脑、手机、另一台模块)发起连接请求时,模块接受并建立TCP连接

  3. 数据交互:(模块指-UART_SERVER)

    • 串口→网络(关键特性):当模块的串口收到下位机数据时,会同时将数据复制并发送给所有已建立连接的客户端。这是一个一对多广播/群发机制

    • 网络→串口:任何一个已连接的Client发来的数据,模块都会通过串口转发给下位机

  4. 连接保持与断开:有明确的连接建立(三次握手)和断开(四次挥手)过程,保证可靠传输。同时支持KeepAlive心跳机制,用于检测连接是否存活


三、连接数量与性能限制

参数 说明
最大连接数 16个 最多可同时连接16个Client
默认连接数 4个 出厂默认最多接受4个连接
多连接流量限制 总带宽 ≤ 2.5KB/s 当连接数超过4个且收发同时进行时,需遵守此限制
单连接流量限制 ≈ 160字节/秒 按16个连接均分2560字节/秒(手册中200字节的说法存在笔误)
连接数可配置 1~16 用户可根据需求在设置软件中自行调整

四、适用场景

  • 局域网内无中心服务器:没有专门的服务器电脑,但多台电脑或手机需要同时访问同一个串口设备

  • 数据需要多端同步查看:比如工厂车间里,车间主任、中控室监控屏、厂长手机同时想看同一台传感器的数据

  • 一对多数据分发:将串口设备的输出同时推送给多个网络终端


五、与TCP Client模式的核心区别

对比项 TCP Server TCP Client
谁主动 模块被动等,Client主动连 模块主动连服务器
连接对象 一对多(一个模块被多个Client连) 多对一(多个模块连同一个服务器)
数据流向 串口数据 → 群发给所有Client 串口数据 → 只发给指定服务器
适用场景 局域网数据广播、多端查看 传感器数据上报云端、集中汇聚
典型角色 模块是“多点”中的那个“1点” 模块是“多点”之一

六、关键配置参数

参数 说明
工作模式 选择 TCP Server
本地端口号 模块监听的端口,如 23(默认)、8234 等,可自定义
最大连接数 1~16,默认4
KeepAlive 心跳保活,用于检测死连接

七、测试方法

  1. 设置USR-TCP232-306工作方式为 TCP Server,本地端口号如 23

  2. 电脑端打开 网络调试助手,模式选 TCP Client

  3. 填写模块的IP地址和端口号,点击连接

  4. 电脑端再打开 串口调试助手,选择对应串口,打开

  5. 在串口调试助手里发送数据,网络调试助手的多个实例都能收到;反过来也一样,实现双向透传


八、数据流示意

text

串口设备(传感器)
    ↕ 串口(RTU/原始数据)
306 模块(TCP Server 模式,监听端口23)
    ↕ 网络(TCP连接)
┌───────┬───────┬───────┐
PC 1    PC 2    手机1
(Client) (Client) (Client)

→ 串口收到一条"温度=25℃"
→ 模块同时把这条数据复制成3份
→ 分别发给 PC1、PC2、手机1
→ 所有Client都收到同步更新的数据
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐