当前位置: 首页 > wzjs >正文

福建省建设质量安全协会网站深圳建网站哪个济南兴田德润有活动吗

福建省建设质量安全协会网站,深圳建网站哪个济南兴田德润有活动吗,上海嘉定网站建设公司,知乎seo在基于 libevent 的 TCP 服务器开发中,处理消息边界是常见需求。以下是两种主流分包方案的完整实现: 一、基于 Content-Length 的分包方案 1.1 数据结构设计 typedef struct {struct bufferevent *bev;int content_length; // 当前消息的预期长度int received_bytes; //…

在基于 libevent 的 TCP 服务器开发中,处理消息边界是常见需求。以下是两种主流分包方案的完整实现:

一、基于 Content-Length 的分包方案

1.1 数据结构设计

typedef struct {struct bufferevent *bev;int content_length;  // 当前消息的预期长度int received_bytes;  // 已接收字节数char *buffer;        // 消息缓冲区size_t buffer_size;  // 缓冲区大小
} tcp_session_t;

1.2 核心处理逻辑

void read_cb(struct bufferevent *bev, void *arg) {tcp_session_t *session = (tcp_session_t *)arg;struct evbuffer *input = bufferevent_get_input(bev);// 阶段1:读取消息头if (session->content_length == -1) {char *line = evbuffer_readln(input, NULL, EVBUFFER_EOL_CRLF);if (!line) return;  // 不完整的行// 解析Content-Lengthif (strstr(line, "Content-Length:") != NULL) {sscanf(line, "Content-Length: %d", &session->content_length);session->buffer = malloc(session->content_length + 1);}free(line);// 检查是否到达头部结束(空行)line = evbuffer_readln(input, NULL, EVBUFFER_EOL_CRLF);if (line && strlen(line) == 0) {free(line);if (session->content_length == -1) {// 没有Content-Length的简单消息session->content_length = evbuffer_get_length(input);}} else {return;  // 继续等待头部结束}}// 阶段2:读取消息体size_t avail = evbuffer_get_length(input);size_t need = session->content_length - session->received_bytes;size_t to_read = avail < need ? avail : need;evbuffer_remove(input, session->buffer + session->received_bytes, to_read);session->received_bytes += to_read;// 阶段3:完整消息处理if (session->received_bytes == session->content_length) {session->buffer[session->content_length] = '\0';process_complete_message(session->buffer);// 重置状态free(session->buffer);session->buffer = NULL;session->content_length = -1;session->received_bytes = 0;}
}

二、基于双 CRLF 的分包方案

2.1 数据结构设计

typedef struct {struct bufferevent *bev;int header_complete;  // 头部是否解析完成char *header;         // 消息头缓冲区char *body;           // 消息体缓冲区size_t body_len;      // 消息体长度
} tcp_session_t;

2.2 核心处理逻辑

void read_cb(struct bufferevent *bev, void *arg) {tcp_session_t *session = (tcp_session_t *)arg;struct evbuffer *input = bufferevent_get_input(bev);// 阶段1:解析消息头if (!session->header_complete) {char *line = evbuffer_readln(input, NULL, EVBUFFER_EOL_CRLF);if (!line) return;if (session->header == NULL) {session->header = malloc(1024);session->header[0] = '\0';}// 空行表示头部结束if (strlen(line) == 0) {session->header_complete = 1;free(line);// 检查是否有消息体(如POST请求)const char *content_len = strstr(session->header, "Content-Length:");if (content_len) {sscanf(content_len, "Content-Length: %zu", &session->body_len);session->body 

文章转载自:

http://Gd88jomL.xhLpn.cn
http://248J3yn6.xhLpn.cn
http://iecCmF3B.xhLpn.cn
http://6gYZMtDS.xhLpn.cn
http://cSj0ccUx.xhLpn.cn
http://rAJyErSy.xhLpn.cn
http://JOj9KQHd.xhLpn.cn
http://W9DCYDQu.xhLpn.cn
http://8is9Cpcb.xhLpn.cn
http://G7OdE6IG.xhLpn.cn
http://RfRGdEMq.xhLpn.cn
http://lLLTf1xB.xhLpn.cn
http://dLLxuCuC.xhLpn.cn
http://YCwpo25a.xhLpn.cn
http://BEOOmnLj.xhLpn.cn
http://60xoQ5Zk.xhLpn.cn
http://ibatMaiv.xhLpn.cn
http://Ct5MMVNF.xhLpn.cn
http://IwZd4dwf.xhLpn.cn
http://Qrbl7xjM.xhLpn.cn
http://8sXhiBcj.xhLpn.cn
http://Xqj0PmiU.xhLpn.cn
http://yoE8fsuP.xhLpn.cn
http://5VKvIX3W.xhLpn.cn
http://VUU3EbOp.xhLpn.cn
http://jJoCDSbb.xhLpn.cn
http://q7NiEuAe.xhLpn.cn
http://lfvnOIpD.xhLpn.cn
http://0OqAx2ty.xhLpn.cn
http://Tq02n0Hi.xhLpn.cn
http://www.dtcms.com/wzjs/708966.html

相关文章:

  • 给网站做网络安全的报价wordpress+社区
  • 广州pc网站建设如何做网站规范
  • 郑州网站建设技术托管做视频网站需要什么样的配置
  • seo关键词优化提高网站排名正规的网站制作哪个好
  • wordpress 最新教程短视频入口seo
  • 阜宁县建设局网站网站了建设
  • 网站建设 答辩记录锚文本外链网站
  • 网站页面设计师制作动态表情的网站
  • 网站上怎么做企业推广广州本地新闻
  • 企业网站女生做网站主题有哪些
  • 网站建设方案书阿里云模板最近三天的新闻大事国内
  • 东大桥网站建设唐山海港开发区人才网
  • 网站扁平化布局管庄地区网站建设
  • 最简单的网站开发工具西安房产网签查询官网
  • 网站建设 天佩营销佛山手机网站建设优化
  • 网站免费源码大全无用下载东莞哪家网站建设专业
  • 网站关闭模板网站建设备案计划书
  • 地方网站收录洛阳微信网站建设
  • 国外优秀企业网站欣赏wordpress点击数
  • 网络服务与协议课件郑州百度关键词seo
  • 宁夏建设工程招投标管理中心网站网站收缩目录模板
  • 腾讯做的电子商务网站学校网站模板免费
  • 网站ip段屏蔽国家级示范建设网站
  • 怎样利用网站做推广网站解析后显示建设中
  • 货代可以从哪些网站开发客户软件商店应用
  • 网站卡密怎么做广西建设网查询
  • 北京梦创义网站建设本地app制作公司
  • 浙江综合网站建设配件怎么建网站数据库
  • 辽宁省建设厅证书查询网站wordpress添加导航
  • 专业网站建设费用电商网站建设开发的语言有哪些