原创 TCP編程模型
文章目錄1 TCP編程模型 1 TCP編程模型 先來看一下socket整體框架圖: 如下爲TCP通信模型: TCP客戶端和服務器示例代碼: demo_tcp_server.c: #include <stdio.h> #inc
原创 索引文件核心頭文件定義
文章目錄1 BlockInfo2 MetaInfo 1 BlockInfo 定義直接放在common.h中: struct BlockInfo { uint32_t block_id_; int32_t version
原创 單線程與多線程網絡程序架構簡介
文章目錄1 單線程與多線程網絡程序架構簡介1.1 服務端單線程處理多客戶端1.2 服務端多進程多端口處理多客戶端1.3 服務端多線程單端口分組處理多客戶端1.4 服務端多線程多端口分組處理多客戶端 1 單線程與多線程網絡程序架構簡
原创 UDP編程模型
文章目錄1 UDP編程模型 1 UDP編程模型 UDP編程模型如下: UDP編程示例代碼: udp_server.c: //服務器端代碼 server.c #include <stdio.h> #include <string.
原创 文件映射操作類的實現
文章目錄1 文件映射操作類的實現 1 文件映射操作類的實現 mmap_file_op.h: #ifndef QINIU_LARGEFILE_MMAPFILE_OP_H_ #define QINIU_LARGEFILE_MMAPFI
原创 添加高精度計時器測量處理能力
文章目錄1 添加高精度計時器測量處理能力 1 添加高精度計時器測量處理能力 這裏我們爲服務端添加高精度計時器來測量處理能力,這裏使用C++11提供的庫來實現。 CELLTimeStamp.hpp: #ifndef _CELLTim
原创 多線程的使用方式
文章目錄1 創建線程2 傳遞參數給線程入口函數3 鎖與臨界區4 自解鎖5 原子操作 1 創建線程 這裏我們直接使用C++11提供的庫函數來進行實現。 簡單示例代碼如下: #include<iostream> #include<th
原创 Shell腳本簡介
文章目錄1 Shell腳本簡介2 第一個shell腳本 1 Shell腳本簡介 Shell腳本是什麼? shell命令按一定語法組成的文件 Shell腳本有什麼用? 批處理文件/整合命令 軟件啓動 性能監控 日誌分析 …
原创 Shell中的常用操作
文章目錄1 讀取從鍵盤輸入的數據2 退出當前進程3 對整數進行數學運算 1 讀取從鍵盤輸入的數據 我們可以使用read進行讀取,示例如下: read -p "input a :" a read -p "input b :" b e
原创 突破Windows下select64的限制
文章目錄1 突破Windows下select64的限制 1 突破Windows下select64的限制 在實際測試中發現當select中超過64時便無法收發數據,這個目前沒有找到原因,我也想不明白。由於FD_SETSIZE的默認值
原创 物聯網技術的發展歷史及關鍵技術
文章目錄1 物聯網技術的發展歷史及基本概念1.1 物聯網技術的發展歷史1.2 物聯網技術的基本概念2 物聯網的核心技術2.1 傳感器技術2.2 組網技術2.3 嵌入式技術2.4 雲計算3 物聯網技術面臨的挑戰3.1 信息安全3.2
原创 物聯網組網技術
文章目錄1 WiFi2 藍牙3 ZigBee4 2G/4G/5G5 NB-IoT6 LoRa7 各種組網技術對比8 網關的概念 1 WiFi Wi-Fi的發明人是悉尼大學工程系畢業生Dr John O’Sullivan領導的一羣由
原创 常見的物聯網通信協議
文章目錄1 TCP2 UDP3 HTTP4 MQTT5 CoAP6 LwM2M 1 TCP TCP 是一種面向連接的、可靠的、基於字節流的傳輸層通信協議。 特點: 面向連接 可靠通信方式 基於流的方式 缺點: 花銷大 設備必
原创 外部事件的處理
文章目錄1 外部事件的處理1.1 概述1.2 代碼實現 1 外部事件的處理 1.1 概述 系統中要監控和管理兩個事件,一是按鍵事件;二是多個外部中斷事件。我們通過事件標誌組來進行處理。 1.2 代碼實現 button.h: /*
原创 封裝server
文章目錄1 封裝server1.1 概述1.2 代碼實現 1 封裝server 1.1 概述 對server的分裝和對client的封裝很類似。 1.2 代碼實現 MessageHeader.hpp: #ifndef _Messa