Libmicrohttpd简介
GNU Libmicrohttpd是一个用来在项目中内嵌http服务器的C语言库,它具有以下几个非常鲜明的特点:
C语言库,小而快。
API非常简单,且都是可重入的。
兼容HTTP1.1。
支持4种多线程模型(select、poll、pthread、thread poll)。
跨平台。
生成的二制文件只有32K(不包含TLS/SSL等额外功能)。
搭建一个简单的本地静态服务器
这篇文章里,我们只编写一个简单的静态服务器,对于用户的所有请求我们都只返回同一个html页面, 该页面显示一串字符。
1. 下载Libmicrohttpd,编译后添加进VS项目
为了使用Libmicrohttpd,我们需要将其添加进VS项目中。这里我们选择编译源代码生成静态库,因为官方给的下载静态库版本链接在使用时会有问题,可能是运行库版本不一致; 并且在使用静态库的情况下,我们只需要引用两个文件就可以了(一个头文件、一个库文件),项目结构不会混乱不清。
实际上Libmicrohttpd的源码编译非常简单,它提供了VS编译文件,基本上我们只需要进入<>w32
目录,在该目录下选择合适的VS子目录下的sln文件,双击打开就可以了。打开后,修改设置libmicrohttpd项目为静态库项目(记得修改生成文件的后缀名,因为默认是dll),右击生成就可以编译成功了。
生成的文件包括一个头文件和一个静态库文件,新建一个VS控制台项目,并将它们添加到VS项目中。
2. main函数
main函数非常简单,核心调用只有2个函数:<>MHD_start_daemon
,MHD_stop_daemon
,分别开始和停止http服务器。
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; }
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页名称:使用Libmicrohttpd搭建内嵌(本地)服务器的方法-创新互联
转载来源:https://www.cdcxhl.com/article42/djhehc.html
成都网站建设公司_创新互联,为您提供网站制作、网站导航、网站维护、手机网站建设、网页设计公司、网站设计公司
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联