使用Libmicrohttpd搭建内嵌(本地)服务器的方法-创新互联
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搭建内嵌(本地)服务器的方法-创新互联
分享地址:http://pwwzsj.com/article/djhehc.html