0
我正在開發一個基本代碼,負責低級套接字編程。問題似乎是,它知道(顯然)什麼時候停止關閉連接的唯一方式是收到的字節數量超過「Content-length」字段中給出的數量。但是由於這個領域不是爲許多網站設置的,我不知道如何告訴它停止。現在發生的情況是,在這些情況下,整個文件被下載,但連接仍然保持。如何判斷使用Winsock(VB6)是否已達到遠程文件的結尾?
在傳入的數據/消息中必須要注意什麼?謝謝。
我正在開發一個基本代碼,負責低級套接字編程。問題似乎是,它知道(顯然)什麼時候停止關閉連接的唯一方式是收到的字節數量超過「Content-length」字段中給出的數量。但是由於這個領域不是爲許多網站設置的,我不知道如何告訴它停止。現在發生的情況是,在這些情況下,整個文件被下載,但連接仍然保持。如何判斷使用Winsock(VB6)是否已達到遠程文件的結尾?
在傳入的數據/消息中必須要注意什麼?謝謝。
由於您提到了Content-Length
標題,您是從HTTP服務器下載的嗎?如果是這樣,那麼當Transfer-Encoding
標題指示正在使用傳輸時,省略Content-Length
標題,這意味着數據以小的順序塊發送(因此,在提前的時候不能在Content-Length
標題中報告全尺寸)。每個塊都有自己的頭部,用於指定塊的大小。您需要解析並丟棄每個塊頭,以便不將它們保存在目標文件中,而只保存塊數據。當您收到報告cheunk數據大小爲0的塊頭時,文件即將到達。
閱讀RFC 2616第3.6.1節瞭解更多詳情。
FD_CLOSE網絡事件。 D'哦。 – mathon12 2010-07-07 16:29:38