2010-07-07 55 views
0

我正在开发一个基本代码,负责低级套接字编程。问题似乎是,它知道(显然)什么时候停止关闭连接的唯一方式是收到的字节数量超过“Content-length”字段中给出的数量。但是由于这个领域不是为许多网站设置的,我不知道如何告诉它停止。现在发生的情况是,在这些情况下,整个文件被下载,但连接仍然保持。如何判断使用Winsock(VB6)是否已达到远程文件的结尾?

在传入的数据/消息中必须要注意什么?谢谢。

+0

FD_CLOSE网络事件。 D'哦。 – mathon12 2010-07-07 16:29:38

回答

0

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

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

相关问题