当前位置:  软件>C/C++软件

GNU libmicrohttpd

    来源:    发布时间:2015-02-06

    本文导语:  GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口,下面是一个最为简单的使用例子: #include #include #include #include #define PAGE "libmicrohttpd demo" "libmicrohttpd demo" static int ahc...

GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口,下面是一个最为简单的使用例子:

#include 
#include 
#include 
#include 

#define PAGE "libmicrohttpd demo"
             "libmicrohttpd demo"

static int ahc_echo(void * cls,
		    struct MHD_Connection * connection,
		    const char * url,
		    const char * method,
                    const char * version,
		    const char * upload_data,
		    size_t * upload_data_size,
                    void ** ptr) {
  static int dummy;
  const char * page = cls;
  struct MHD_Response * response;
  int ret;

  if (0 != strcmp(method, "GET"))
    return MHD_NO; /* unexpected method */
  if (&dummy != *ptr) 
    {
      /* The first time only the headers are valid,
         do not respond in the first round... */
      *ptr = &dummy;
      return MHD_YES;
    }
  if (0 != *upload_data_size)
    return MHD_NO; /* upload data in a GET!? */
  *ptr = NULL; /* clear context pointer */
  response = MHD_create_response_from_data(strlen(page),
					   (void*) page,
					   MHD_NO,
					   MHD_NO);
  ret = MHD_queue_response(connection,
			   MHD_HTTP_OK,
			   response);
  MHD_destroy_response(response);
  return ret;
}

int main(int argc,
	 char ** argv) {
  struct MHD_Daemon * d;
  if (argc != 2) {
    printf("%s PORTn",
	   argv[0]);
    return 1;
  }
  d = MHD_start_daemon(MHD_USE_THREAD_PER_CONNECTION,
		       atoi(argv[1]),
		       NULL,
		       NULL,
		       &ahc_echo,
		       PAGE,
		       MHD_OPTION_END);
  if (d == NULL)
    return 1;
  (void) getc ();
  MHD_stop_daemon(d);
  return 0;
}

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Guangzhou GNU/Linux User,广州GNU/Linux用户组,欢迎加入
  • ★★★★ 简单问题: GNU 是什么的缩写? ★★★★
  • GNU ARM 工具链
  • c/c++ iis7站长之家
  • GNU可移植线程库 nPth
  • GNU Automake
  • 可移植C++类库 GNU Common C++
  • 游戏 GNU Robbo
  • 怎样验证自己的make是不是GNU的make?
  • 弱弱问题:什么是GNU?
  • 软件无线电 GNU Radio
  • 小型的GNU环境 MSys
  • GNU/Hurd为何物,望指教!
  • 翻译GNU的文档侵犯版权吗?
  • GNU ld脚本 初学
  • GNU Hurd
  • GNU Make 标准库 GMSL
  • 休闲游戏 GNU Shogi
  • 单位转换测量 GNU Units
  • 任意精度数值计算器 GNU bc


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3