此页介绍如何使用 libcc 内置的 HTTP 解析与 WebSocket 支持。示例基于项目中的 `tests/test_http.c` 与 `tests/test_wss.c`,此处给出精简版。
#include <libcc.h>
#include <stdio.h>
/* 精简:监听端口并在收到请求时返回静态页面 */
int main(void) {
struct sockaddr_in sa;
_cc_async_event_t async;
_cc_event_t *e;
_cc_install_socket();
if (!_cc_register_poller(&async)) return -1;
e = _cc_event_alloc(&async, _CC_EVENT_ACCEPT_);
e->callback = NULL; /* 在完整实现中设置处理函数 */
e->timeout = 60000;
_cc_inet_ipv4_addr(&sa, nullptr, 8082);
_cc_tcp_listen(&async, e, (_cc_sockaddr_t*)&sa, sizeof(struct sockaddr_in));
while (1) {
async.wait(&async, 100);
}
async.free(&async);
return 0;
}
完整的 WebSocket 实现涉及握手、掩码、分帧等,参考 `tests/test_wss.c`。通常流程: