Libmicrohttpd簡介
GNU Libmicrohttpd是一個用來在項目中內(nèi)嵌http服務(wù)器的C語言庫,它具有以下幾個非常鮮明的特點(diǎn):
C語言庫,小而快。
API非常簡單,且都是可重入的。
兼容HTTP1.1。
支持4種多線程模型(select、poll、pthread、thread poll)。
跨平臺。
生成的二制文件只有32K(不包含TLS/SSL等額外功能)。
搭建一個簡單的本地靜態(tài)服務(wù)器
這篇文章里,我們只編寫一個簡單的靜態(tài)服務(wù)器,對于用戶的所有請求我們都只返回同一個html頁面, 該頁面顯示一串字符。
1. 下載Libmicrohttpd,編譯后添加進(jìn)VS項目
為了使用Libmicrohttpd,我們需要將其添加進(jìn)VS項目中。這里我們選擇編譯源代碼生成靜態(tài)庫,因?yàn)楣俜浇o的下載靜態(tài)庫版本鏈接在使用時會有問題,可能是運(yùn)行庫版本不一致; 并且在使用靜態(tài)庫的情況下,我們只需要引用兩個文件就可以了(一個頭文件、一個庫文件),項目結(jié)構(gòu)不會混亂不清。
實(shí)際上Libmicrohttpd的源碼編譯非常簡單,它提供了VS編譯文件,基本上我們只需要進(jìn)入<>w32
目錄,在該目錄下選擇合適的VS子目錄下的sln文件,雙擊打開就可以了。打開后,修改設(shè)置libmicrohttpd項目為靜態(tài)庫項目(記得修改生成文件的后綴名,因?yàn)槟J(rèn)是dll),右擊生成就可以編譯成功了。
生成的文件包括一個頭文件和一個靜態(tài)庫文件,新建一個VS控制臺項目,并將它們添加到VS項目中。
2. main函數(shù)
main函數(shù)非常簡單,核心調(diào)用只有2個函數(shù):<>MHD_start_daemon
,MHD_stop_daemon
,分別開始和停止http服務(wù)器。
int main() { const int port = 8888; struct MHD_Daemon* daemon = MHD_start_daemon(MHD_USE_SELECT_INTERNALLY, port , NULL, NULL, connectionHandler, NULL, MHD_OPTION_END); if (daemon == NULL) { std::cout << "cannot start server!\n"; return -1; } std::cin.get(); MHD_stop_daemon(daemon); return 0; }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.rwnh.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)頁名稱:使用Libmicrohttpd搭建內(nèi)嵌(本地)服務(wù)器的方法-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://www.rwnh.cn/article42/djhehc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)站導(dǎo)航、網(wǎng)站維護(hù)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計公司、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容