如何判断是否使用Winsock(VB6)到达远程文件的结尾?

时间:2010-07-07 16:13:25

标签: vb6 winsock

我正在基础代码上开发一个程序,负责低级套接字编程。问题似乎是它知道(显然)何时停止关闭连接的唯一方法是接收的字节数超过“Content-length”字段中给出的字节数。但由于该字段没有为许多网站设置,我不知道如何告诉它停止。现在发生的是,在这些情况下,整个文件被下载但仍然保持连接。

传入的数据/消息中必须要查找某些内容?感谢。

1 个答案:

答案 0 :(得分:0)

由于您提到Content-Length标头,您是从HTTP服务器下载的吗?如果是,则当Content-Length标头指示正在使用Transfer-Encoding传输时,省略chunked标头,这意味着数据以小的顺序块发送(因此完整大小不能提前在Content-Length标题中报告。每个块都有自己的头,指定其块的大小。您需要解析并丢弃每个块头,这样就不会将它们保存在目标文件中,只保存在块数据中。当您收到报告数据大小为0的块头时,将到达文件末尾。

阅读RFC 2616第3.6.1节了解更多详情。