自自然卷 2017-05-05 09:07 采纳率: 35.7%
浏览 509

TCP读取部分数据的问题

假如TCP请求端发了1000个字符过来,然后服务端读了10个字符就回送消息,这样行不行?why?谢谢。
tinyhttpd代码里读取完http第一行后进入serve_file()函数,只有取消下面的注释才能浏览器才能正常访问页面,注释中的内容是在读取请求的其他部分。

 void serve_file(int client, const char *filename)
{
 FILE *resource = NULL;
 int numchars = 1;
 char buf[1024];
 buf[0] = 'A'; buf[1] = '\0';//这个赋值不清楚是干什么的
 //read whole header from client is must!!!if not,
 /*
 while ((numchars > 0) && strcmp("\n", buf)){ //将HTTP请求头读取并丢弃
  numchars = get_line(client, buf, sizeof(buf));
  printf("%s\n",buf);
  }*/
//打开文件
 resource = fopen(filename, "r");
 if (resource == NULL)
 //如果文件不存在,则返回not_found
  not_found(client);
 else
 {
 //添加HTTP头
  headers(client, filename);
 //并发送文件内容
  cat(client, resource);
 }
 fclose(resource);//关闭文件句柄
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 如何获取烟草零售终端数据
    • ¥15 数学建模招标中位数问题
    • ¥15 phython路径名过长报错 不知道什么问题
    • ¥15 深度学习中模型转换该怎么实现
    • ¥15 HLs设计手写数字识别程序编译通不过
    • ¥15 Stata外部命令安装问题求帮助!
    • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
    • ¥15 TYPCE母转母,插入认方向
    • ¥15 如何用python向钉钉机器人发送可以放大的图片?
    • ¥15 matlab(相关搜索:紧聚焦)