使用libwebsockets库可以实现基于WebSocket协议的网络通信。以下是一个简单的示例代码,展示了如何使用libwebsockets库创建WebSocket服务器:
#include <libwebsockets.h>
static int callback_http(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len)
{
// 处理HTTP请求
// ...
return 0;
}
static int callback_ws(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len)
{
switch (reason)
{
case LWS_CALLBACK_ESTABLISHED:
// WebSocket连接建立
break;
case LWS_CALLBACK_RECEIVE:
// 接收到WebSocket消息
break;
default:
break;
}
return 0;
}
int main()
{
struct lws_context_creation_info info;
memset(&info, 0, sizeof(info));
info.port = 8000; // 设置监听端口号
info.protocols = NULL;
info.gid = -1;
info.uid = -1;
struct lws_protocols protocols[] = {
{ "http", callback_http, 0 },
{ "websocket", callback_ws, sizeof(int), 1024 },
{ NULL, NULL, 0 }
};
info.protocols = protocols;
struct lws_context *context = lws_create_context(&info);
while (1) {
lws_service(context, /* timeout_ms */50);
// 处理其他业务逻辑
// ...
}
lws_context_destroy(context);
return 0;
}
以上是一个简单的WebSocket服务器示例,你可以根据具体需求进行修改和扩展。
内容由零声教学AI助手提供,问题来源于学员提问




