学习嵌入式的第三十三天-数据结构-(2025.7.25)服务器/多客户端模型

服务器/多客户端模型

循环服务器
while(1){ accept(); recv(); }

适用于简单任务,如基础Web服务器,但无法处理并发请求。

并发服务器

通过threadfork实现多任务处理。需注意子进程/线程的资源回收,避免内存泄漏。

多路IO模型服务器

使用selectepoll实现高效的事件驱动模型,适合高并发场景,减少系统资源占用。


MQTT协议(消息队列遥测传输协议)

专为嵌入式或资源受限设备设计,特点包括:

  • 低带宽、低功耗
  • 传输可靠,适合移动设备或物联网场景

工作过程

涉及三个角色:

  • 发布者:发送数据时必须携带主题名(Topic),数据发送至Broker。
  • 订阅者:向Broker注册关心的主题名,Broker记录订阅关系。
  • Broker(代理服务器):根据订阅链表匹配主题,向订阅者转发数据。

双向通信

订阅者可同时作为发布者,反之亦然。


软件安装方法

在线安装

bash 复制代码
sudo apt-get install <package_name>

本地安装

  1. 下载源码(如从www.github.org

  2. 生成配置与编译文件:

    bash 复制代码
    ./configure
  3. 编译源码:

    bash 复制代码
    make

    生成可执行文件或库文件(如.so)。

  4. 安装到系统目录:

    bash 复制代码
    sudo make install
相关推荐
这周也會开心13 分钟前
Map的遍历方式
数据结构·算法
AIwenIPgeolocation15 分钟前
IP定位精度疑问:有些IP为什么难以达到街道级准确度?
服务器·网络·tcp/ip
liu****15 分钟前
20.传输层协议TCP
服务器·网络·数据结构·c++·网络协议·tcp/ip·udp
jiushun_suanli18 分钟前
FPGA(现场可编程门阵列)详解
经验分享·学习·fpga开发
q***318328 分钟前
在Linux系统上使用nmcli命令配置各种网络(有线、无线、vlan、vxlan、路由、网桥等)
linux·服务器·网络
小白博文1 小时前
MobaXterm调用远程服务器(Linux)图形化界面应用
linux·运维·服务器
前端小L1 小时前
图论专题(二):“关系”的焦点——一眼找出「星型图的中心节点」
数据结构·算法·深度优先·图论·宽度优先
ddacrp2 小时前
RHEL_NFS服务器
linux·服务器·网络
叫我龙翔2 小时前
【数据结构】从零开始认识B树 --- 高效外查找的数据结构
数据结构·c++·b树
点云SLAM2 小时前
C++ 中的栈(Stack)数据结构与堆的区别与内存布局(Stack vs Heap)
开发语言·数据结构·c++·内存布局·栈数据结构·c++标准算法·heap内存分配