学习嵌入式的第三十三天-数据结构-(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
相关推荐
1白天的黑夜117 分钟前
链表-143.重排链表-力扣(LeetCode)
数据结构·leetcode·链表
风和日丽 随波逐流25 分钟前
java17学习笔记
笔记·学习
xlntj42 分钟前
VsCode远程连接服务器后安装Github Copilot无法使用
服务器·vscode·github
matlab的学徒3 小时前
计算机网络
服务器·网络·计算机网络
Wy_编程9 小时前
Linux-文本搜索工具grep
linux·运维·服务器
qq998999 小时前
AAA服务器技术
运维·服务器
xujiangyan_9 小时前
linux的sysctl系统以及systemd系统。
linux·服务器·网络
Lovyk9 小时前
Linux Shell 常用操作与脚本示例详解
linux·运维·服务器
iCan_qi10 小时前
【Mac】【Minecraft】关于如何在Mac上搭建基岩版MC服务器的方法
运维·服务器·macos·minecraft
月盈缺11 小时前
学习嵌入式的第二十二天——数据结构——双向链表
数据结构·学习·链表