原创 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