一、實現原理
- http請求就是tcp通信,所以第一步實例化QTcpServer類監聽端口,並綁定newConnection信號槽。
- 一旦有新的連接,交給專門的解包類處理,將對應的數據解包,http請求有特定的頭部數據等,比如是否需要保活等參數,將其取出來並解析應用。
- 收發數據交互其實就是QTcpSocket通信對象的交互,只是收發數據帶了對應的頭部數據。
- 回復網頁數據只需要將網頁的html數據發給請求對象即可。
二、功能特點
- 支持多個客戶端連接並發同時處理,100個毫無壓力。
- 可設置http請求是長連接還是短連接,默認長連接。
- 支持多種回復數據格式,其中包括網頁內容、json數據等。
- 服務端示例中同時包含讀取文件回復、讀取數據庫回復。
- 支持8種配色方案(暗黑、灰黑、深綠、淺黃、深藍、深黑、暗藍、默認)。
- 客戶端可指定請求地址,服務端可指定網卡和端口進行監聽。
- 所有請求和連接都有計數,所有在線請求的IP和端口都顯示在表格中。
- 可以提供一個簡易的網頁配置服務,包括交互,作為設備的web配置。
- 可自由拓展增加權限校驗等,作為一個http請求服務器。
- 純Qt實現,代碼框架整潔,注釋完整,支持任意Qt版本、任意編譯器、任意操作系統。
三、效果圖
四、體驗地址
- 體驗地址:https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A 提取碼:o05q 名稱:bin_httpserver.zip
- 國內站點:https://gitee.com/feiyangqingyun
- 國際站點:https://github.com/feiyangqingyun
- 個人主頁:https://blog.csdn.net/feiyangqingyun
- 知乎主頁:https://www.zhihu.com/people/feiyangqingyun/
備注:如果網盤下載不到可以去開源主頁下載