[問題] 以 Winsock 下載二進位檔案會斷掉
各位板友大家好
我用 Winsock 寫一個程式,功用是從 HTTP 下載檔案,存到主機上。
但我遇到一個問題:
下載二進位檔案時無法傳完,大概只能收到100~210個byte
且收到的部分也不完整,中間會遺漏幾個byte,再繼續接下去
但下載文字檔時則完全沒有問題(即使檔案大小更大也OK)
我google到 Microsoft曾發佈一個 Winsock 的 bug
http://support.microsoft.com/kb/234576/zh-tw
裡面所描述的狀況似乎跟我的狀況有點像
用16進位編集器看我下載到的東西,
漏掉的段落確實是在原檔案中有00的地方及往後的一段
而檔案最後斷掉的地方也是00
我作了一些嘗試:
1. 在文字檔裡加進一串 00
結果還是可以完全下載
2. 把jpg檔接在文字檔後面
結果前面的文字部分都沒問題,到jpg的部分只傳了20幾個byte又斷了
注:我只有接jpg的前面一部分,但能載到的更少
測資: http://ahbi0302.infor.org/test0.b64
結果: http://ahbi0302.infor.org/1.log
直接下載圖片的話
圖片: http://ahbi0302.infor.org/1265943919710.jpg

結果: http://ahbi0302.infor.org/2.log
請問該怎麼解決這個問題?
程式碼較長,我放在這裡
http://ahbi0302.infor.org/down.cpp
OS: Windows Vista Home Premium
寫作: Bloodshed Dev C++ 4.9.9.2
Linker參數: -lws2_32
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.71.78.200
推
08/12 09:03, , 1F
08/12 09:03, 1F
→
08/12 13:12, , 2F
08/12 13:12, 2F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章