[問題] Windows I/O接收端總是少第一筆資料?(已解決)

看板C_and_CPP (C/C++)作者 (超越自己)時間10年前 (2015/10/05 10:41), 10年前編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Windows -- 想請問各位板友, 在做I/O傳輸資料時,第一筆資料總是會遺失, 後續的資料皆能正常傳輸。 發送端WriteFile的第四個參數列印出來有bytes, 但是接收端ReadFile返回時,第四個參數列印顯示接收0bytes, 用關鍵字上網查詢後發現有類似狀況的問答不多, 想請教板上先進是否有遇過同樣狀況,又是如何解決的呢? 懇請板友不吝指導,謝謝大家。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.183.149 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1444012883.A.04B.html

10/05 11:42, , 1F
先檢查看看第一筆有沒有送出吧,說不定有BUG
10/05 11:42, 1F

10/05 12:04, , 2F
請問如何查呢? 謝謝您。
10/05 12:04, 2F

10/05 12:24, , 3F
ollydbg
10/05 12:24, 3F
謝謝s大提供軟體資訊。 另問題已經解決,提供經驗回饋...原因是接收端的WriteFile有採用重疊IO, 而接收端的ReadFile並無採用(即最後參數為NULL), 早先這樣使用並無問題,但就在我將程式改為多執行緒後, 這個問題才出現,應該也很少有人像我這樣亂用 XD ※ 編輯: BIAO (60.251.183.149), 10/06/2015 10:21:05 ※ 編輯: BIAO (60.251.183.149), 10/06/2015 10:21:35
文章代碼(AID): #1M4UDJ1B (C_and_CPP)
文章代碼(AID): #1M4UDJ1B (C_and_CPP)