socket 單步調試正確,F5調試錯誤,運行也錯誤的解決方案

引用icansaymyabc的話語:解決方案如下

socket程序是與操作系統緊密相關的,它異步調用了各種系統資源。


你的問題我見得多了,實質上就是在socket的異步操作尚未得到應答之前你的單線程工作流已經把socket對象銷燬了。單步調試之所以成功是因爲你在每一個語句執行完後給了很大的停頓,使得socket對象在被銷燬前有機會幹完工作。

解決辦法1:把你的源程序每個語句之後加一條 Sleep(5000),這樣留出足夠的時間給socket對象幹活。
//這種方案試過,太棒了,困擾了一天的問題終於解決。
解決辦法2:把你的程序改成多線程的或異步的,要確保socket對象完成了本職工作才能銷燬它。
發佈了145 篇原創文章 · 獲贊 3 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章