服務器/多客戶端模型
循環服務器
while(1){ accept(); recv(); }
適用于簡單任務,如基礎Web服務器,但無法處理并發請求。
并發服務器
通過thread
或fork
實現多任務處理。需注意子進程/線程的資源回收,避免內存泄漏。
多路IO模型服務器
使用select
或epoll
實現高效的事件驅動模型,適合高并發場景,減少系統資源占用。
MQTT協議(消息隊列遙測傳輸協議)
專為嵌入式或資源受限設備設計,特點包括:
- 低帶寬、低功耗
- 傳輸可靠,適合移動設備或物聯網場景
工作過程
涉及三個角色:
- 發布者:發送數據時必須攜帶主題名(Topic),數據發送至Broker。
- 訂閱者:向Broker注冊關心的主題名,Broker記錄訂閱關系。
- Broker(代理服務器):根據訂閱鏈表匹配主題,向訂閱者轉發數據。
雙向通信
訂閱者可同時作為發布者,反之亦然。
軟件安裝方法
在線安裝
sudo apt-get install <package_name>
本地安裝
- 下載源碼(如從
www.github.org
) - 生成配置與編譯文件:
./configure
- 編譯源碼:
make
.so
)。 - 安裝到系統目錄:
sudo make install