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

【Mini 型 http 服务器】—— int get_line(int sock, char *buf, int size);

作用:

逐行读取并返回读取的内容长度,取出读取的内容保存在 buf 数组中

输入:

int sock:需要读取的 sock 套接字

char *buf:用于记录保存读取的内容

int sizebuf 的大小

返回值:

 -1  表示 读取出错

 =0 表示 读到一个空行

 >0 表示 成功读取一行

函数接口实现:

int get_line(int sock, char *buf, int size){int count = 0;char ch = '\0';int len = 0;while( (count<size - 1) && ch!='\n'){len = read(sock, &ch, 1);if(len == 1){if(ch == '\r'){continue;}else if(ch == '\n'){//buf[count] = '\0';break;}//这里处理一般的字符buf[count] = ch;count++;}else if( len == -1 ){//读取出错perror("read failed");count = -1;break;}else {// read 返回0,客户端关闭sock 连接.fprintf(stderr, "client close.\n");count = -1;break;}}if(count >= 0) buf[count] = '\0';return count;
}
http://www.dtcms.com/a/198339.html

相关文章:

  • 使用AI 生成PPT 最佳实践方案对比
  • es聚合-词条统计
  • Java学习手册:服务熔断与降级
  • Ubuntu 18.04设置静态IP的方法(图形化操作)
  • Spring-Beans的生命周期的介绍
  • nginx模块使用、过滤器模块以及handler模块
  • Linux 文件(1)
  • 用golang实现二叉搜索树(BST)
  • 飞帆控件:on_post_get 接口配置
  • YOLO12改进-模块-引入Channel Reduction Attention (CRA)模块 降低模型复杂度,提升复杂场景下的目标定位与分类精度
  • 处理金融数据,特别是股票指数数据,以计算和分析RSRS(相对强度指数)
  • OpenAI深夜发布Codex:AI编程里程碑式突破
  • 二:操作系统之进程的创建与终止
  • 基于区块链技术的智能汽车诊断与性能分析
  • Ansible模块——文件属性查看,文件或目录创建和属性修改
  • 量子计算 | 量子密码学的挑战和机遇
  • Docker配置容器开机自启或服务重启后自启
  • 【iOS】探索消息流程
  • PCB设计(十九)PCB设计中NPN/PNP选型策略
  • 【甲方安全建设】拉取镜像执行漏洞扫描教程
  • 智慧大楼综合信息化建设方案,技术解决方案(PPT)
  • 【YOLO(txt)格式转VOC(xml)格式数据集】以及【制作VOC格式数据集 】
  • 掌握生成式 AI 的未来:Google Cloud 全新认证
  • 电子电路:怎么理解电子在导体中的热运动?
  • 上位机知识篇---涂鸦智能云平台
  • Open CASCADE学习|几何体切片处理:OpenMP与OSD_Parallel并行方案深度解析
  • 如何设置 MySQL 的 root 密码:详细指南
  • 创建型:原型模式
  • 配置代理服务器访问github、google
  • 408考研逐题详解:2009年第16题