[問題] 以 Winsock 下載二進位檔案會斷掉

看板C_and_CPP (C/C++)作者 (AhBi 阿B)時間15年前 (2010/08/12 02:31), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/2 (看更多)
各位板友大家好 我用 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
infor的耶
08/12 09:03, 1F

08/12 13:12, , 2F
code一打開就有點不想看下去...排版給他有夠OOXX
08/12 13:12, 2F
文章代碼(AID): #1COknq50 (C_and_CPP)
文章代碼(AID): #1COknq50 (C_and_CPP)