GNU libmicrohttpd 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
GNU libmicrohttpd 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 LGPL
开发语言 C/C++
操作系统 Windows
软件类型 开源软件
所属分类 服务器软件HTTP服务器
开发厂商
地区 不详
提 交 者 不详
适用人群 未知
收录时间 2008-11-17

软件简介

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

#include <microhttpd.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

#define PAGE "<html><head><title>libmicrohttpd demo</title>"\
             "</head><body>libmicrohttpd demo</body></html>"

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 PORT\n",
	   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;
}
展开阅读全文

评论 (0)

加载中
更多评论
发表了资讯
2014/06/03 00:00

GNU libmicrohttpd 0.9.37 发布

GNU libmicrohttpd 0.9.37 发布,此版本修复了关于 URI 溢出的 API 兼容的回退问题;修复了 #3392 分支 (HTTPS 连接重置处理) 。 GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口,下面是一个最为简单的使用例子: #include <microhttpd.h> #include <stdlib.h> #i...

1
9
发表了资讯
2014/05/26 00:00

GNU libmicrohttpd 0.9.36 发布

GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口。 GNU libmicrohttpd 0.9.36 发布,此版本更新内容如下: 解决了某些 0 字节应答生成额外 CRLF 的问题 解决了在某种情况下请求回调函数被调用两次的问题 GnuTLS 头检测支持交叉编译 修复了 W32 链接器的问题...

6
10
发表了资讯
2014/05/03 00:00

GNU libmicrohttpd 0.9.35 发布

GNU libmicrohttpd 0.9.35 发布,此版本更新内容如下: Adds MHD_OPTION_HTTPS_MEM_DHPARAMS to allow applications to enable perfect forward secrecy Increases FD_SETSIZE and use of native mutex on W32; makes various improvements to the build system (updated macros, new configure options) Improved head...

1
15
发表了资讯
2014/02/26 00:00

GNU libmicrohttpd 0.9.34 发布

GNU libmicrohttpd 0.9.34 发布,此版本更新内容如下: 移除了 W32 Plibc 的依赖关系,改进了 W32 构建过程 IPv4/IPv6 双栈协议可以运行在 W32 和 Linux 上面 支持 TCP FASTOPEN 如果客户端显式请求,那么 就支持 Keep-Alive with HTTP 1.0 adds explicit annotations to hide non-exported symbols 各种小的代码清理 GN...

0
3
发表了资讯
2013/12/22 00:00

GNU libmicrohttpd 0.9.33 发布

GNU libmicrohttpd 0.9.33 发布,此版本更新内容如下: 支持 SNI(一个 TLS IP 对应多个域名) 修复了禁用 SSL 时构建项目的问题 修复了使用 sendfile 时虚假偏移量计算的问题 修复了 关机/恢复/暂停 时描述符泄漏的问题 修复了示例中缺少参数的问题 GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 ...

0
6
发表了资讯
2013/10/20 00:00

GNU libmicrohttpd 0.9.31 发布

GNU libmicrohttpd 0.9.31 发布了,GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口 该版本改进记录包括: The connection handle is now passed as an additional argument to the URI log callback. Connection termination will now be signalled as successful if...

0
8
发表了资讯
2013/09/04 00:00

GNU libmicrohttpd 0.9.30 发布

GNU libmicrohttpd 0.9.30 实现了 RFC 2616 的 8.1.4 章节里的 SHOULD 语句;可通过客户端的取消请求来减少带宽消耗;修复了构建的错误。 GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口,下面是一个最为简单的使用例子: #include <microhttpd.h> #include <stdlib...

0
10
发表了资讯
2013/08/24 00:00

GNU libmicrohttpd 0.9.29 发布

GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口 GNU libmicrohttpd 0.9.29 改进记录: epoll can now also be used with SSL connections. Following recent HTTP/1.1 clarfications, MHD no longer send a "Content-length" header in CONNECT responses. The "MHD_...

1
11
发表了资讯
2013/03/30 00:00

GNU libmicrohttpd 0.9.26 发布

GNU libmicrohttpd 0.9.26 是一个 bugfix 版本,修复了某些平台下的 URL 解析器的初始化问题;如果系统 uptime 小于连接的 timeout 不再移除 SSL 连接。 GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口,简单例子请看这里。...

0
7
发表了资讯
2013/02/06 00:00

GNU libmicrohttpd 0.9.25 发布

GNU libmicrohttpd 0.9.25 改进列表: This release allows creating responses with zero bytes using MHD_create_response_from_callback. A few "const" statements have been added to allow keeping more static strings in ROM. The code has been modified to work with PlibC 0.1.7 on Windows. The post proce...

0
1
发表了资讯
2012/12/26 00:00

GNU libmicrohttpd 0.9.24 发布

GNU libmicrohttpd 0.9.24 修复了在 IE8 和 Chrome 上处理 POST 数据的参数丢失问题;如果客户端请求连接要关闭则自动设置 Connection: close 头;提供 chunked 编码和 content-length 头;MHD 忽略 content-length 头。 GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端...

0
11
发表了资讯
2012/09/02 00:00

GNU libmicrohttpd 0.9.23 发布

GNU libmicrohttpd 0.9.23 发布,该版本修复了无 memory.h 中的构建问题,修复了查询字符串的错误解析问题以及基本和摘要认证的依赖问题。 GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口,下面是一个最为简单的使用例子: #include <microhttpd.h> #include <stdlib...

0
5
发表了资讯
2012/07/21 00:00

GNU libmicrohttpd 0.9.21 发布

GNU libmicrohttpd 0.9.21 发布,GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口。 0.9.21: This release fixes potential problems with non-monotonic increasing system time values, makes sockets non-inheritable by default, and enables MHD to operate wit...

1
1
发表了资讯
2012/06/01 00:00

GNU libmicrohttpd 0.9.20 发布

GNU libmicrohttpd 0.9.20 版本主要是小 bug 修复,例如在某些情况下的连接中断回调方法没有被调用等等。 GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口,下面是一个最为简单的使用例子: #include <microhttpd.h> #include <stdlib.h> #include <string.h> #inclu...

0
3
发表了资讯
2012/01/24 00:00

GNU libmicrohttpd 0.9.18 发布

GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口。 GNU libmicrohttpd 0.9.18 发布,该版本修复了一些小bug,此外还包括: digest authentication was failing under certain circumstances (nonce count >= 10 or GETs with URL arguments). Furthermore, an uninit...

0
0
发表了资讯
2011/09/29 00:00

GNU libmicrohttpd 0.9.15 发布

GNU libmicrohttpd 0.9.15 发布了,该版本增加对 URL 参数中不带 “=” 的解析;修复了非 Linux 系统上一些管道的处理问题;对响应进行清理使之更及时的处理请求;在测试用例和文档方面也做了完善。 GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口。...

0
0
发表了资讯
2011/06/23 00:00

GNU libmicrohttpd 0.9.12 发布

该版本主要修复了一些小bug,包括: 1. a data race on closing connections, not forcing connections to close if the server sends "Connection: close", 2. a tiny memory leak in TLS initialization, 3. a busy-waiting loop for up to 1s upon connection timeout. 另外该版本在性能上也有显著的提升。 GNU libm...

0
2
发表了资讯
2011/05/21 00:00

GNU libmicrohttpd 0.9.11 发布

GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口。 该版本修复了 multipart/form-data 数据的解析问题,修复了用于处理请求管道和上传数据的问题等。

0
2
发表了资讯
2011/03/05 00:00

GNU libmicrohttpd 0.9.8 发布

GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口 该版本增加服务器初始化连接;避免使用 pthread 信号,提升了可移植性;支持在32位系统下传输超过2G的文件;修复了一些bug;更新了教程。

0
0
发表了资讯
2011/01/10 00:00

GNU libmicrohttpd 0.9.5 发布

GNU libmicrohttpd 是一个小型的嵌入式 HTTP 服务器 的 C 类库,支持 HTTP 1.1 可以同时侦听多个端口 Changes: 1. fixes a double-lock on non-Linux platforms when using "MHD_create_response_from_fd". 2. Additional response creation calls were added in this release, enabling the use... of "sendfile" with ...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
暂无内容
0 评论
61 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部