mongoose 响应http客户端
时间: 2023-08-30 08:09:26 浏览: 206
Mongoose 是一个嵌入式 Web 服务器,它可以响应 HTTP 客户端的请求。在 Mongoose 中,你可以通过编写代码来处理 HTTP 请求,并返回响应数据。
以下是一个简单的示例代码,展示了如何使用 Mongoose 响应 HTTP 请求:
```
#include "mongoose.h"
static const char *html = "<html><body><h1>Hello, world!</h1></body></html>";
static void ev_handler(struct mg_connection *nc, int ev, void *ev_data) {
struct http_message *hm = (struct http_message *) ev_data;
switch (ev) {
case MG_EV_HTTP_REQUEST:
mg_printf(nc, "HTTP/1.1 200 OK\r\n"
"Content-Type: text/html\r\n"
"Content-Length: %d\r\n"
"\r\n"
"%s",
(int) strlen(html), html);
nc->flags |= MG_F_SEND_AND_CLOSE;
break;
default:
break;
}
}
int main(void) {
struct mg_mgr mgr;
struct mg_connection *nc;
mg_mgr_init(&mgr, NULL);
nc = mg_bind(&mgr, "8080", ev_handler);
mg_set_protocol_http_websocket(nc);
for (;;) {
mg_mgr_poll(&mgr, 1000);
}
mg_mgr_free(&mgr);
return 0;
}
```
在这个示例中,我们创建了一个名为 `ev_handler` 的回调函数,它会在 Mongoose 接收到 HTTP 请求时被调用。在这个函数中,我们使用 `mg_printf` 函数来向客户端发送 HTTP 响应。这个响应中包含了一个简单的 HTML 页面,其中包含了一条问候语。
在 `main` 函数中,我们使用 `mg_bind` 函数来创建一个监听在端口 `8080` 上的 HTTP 服务器。然后,我们使用 `mg_set_protocol_http_websocket` 函数来为这个服务器设置 HTTP 协议和 WebSocket 协议。
最后,我们使用 `mg_mgr_poll` 函数来等待事件的发生。在这个示例中,我们只关注 HTTP 请求事件。当这个事件发生时,我们就会调用 `ev_handler` 函数来处理它。
阅读全文