【发布时间】:2011-12-31 11:32:02
【问题描述】:
我对如何将文件从 http 服务器发送到客户端(网络浏览器)有点困惑。
首先我发送标题,我的下一个任务是发送文件内容。但是,当我遇到一些问题时,我想以 512 字节的段而不是整个文件的形式一次发送它。
我对如何实现这一点有点迷茫。这就是我想要的
read file1;
while (seg=get_next_segment(file1)){
do
send(seg)
until (seg_is_sent)
}
但是我似乎找不到合适的功能来实现这一点。 fread 和 fseek 闪过我的脑海,但第一个立即读取整个文件,并且使用 fseek 我看不到只从文件中获取一部分的方法(而不是从文件指针中读取直到结束文件)。
【问题讨论】:
-
如果
fread一次读取整个文件,为什么它有参数告诉它要读取多少?而fseek根本不能用于阅读。 -
请问为什么要分段发送?此外,
sendfile效率更高。 -
@yi_H 原因是我之前整体发过,没有整体到。我在浏览器中收到一条消息,例如“无法读取文件”
-
@Joachim 我认为只有已经知道这些功能如何工作的人才能阅读并完全理解一些手册页。
标签: c sockets binary file-transfer