我現在使用send 一條一條地發送數, recv執行緒的能正確收到資料。資料很小,只有5個字符左右,所以資料每次發送都接收完的。但是我使用send連續發送10次資料,然后再使用recv接收,recv接收后還要執行一系列判斷,導致send發送資料后,recv還沒回到接收資料的阻塞狀態。導致接收不到第二次以后的資料。
我試過,在send之后,使用了Sleep(500)再send第二條資料再Sleep(500)。。,能全部資訊都接收列印。 更加確定是上面的問題了。
我現在的問題是,我用MFC的button,按下發送移動資料,彈起發送停止資料。兩個間隔時差很短,我要如何保證,兩次的資料都能正確無誤的發送給下位機收到。
uj5u.com熱心網友回復:
把檔案描述符或者檔案句柄設定為非阻塞模式試試!
uj5u.com熱心網友回復:
TCP建立的連接,發送資料量大時,你會發現,每次recv收到的資料不一定是完整的,需要做封包拆包處理轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/124050.html
標籤:網絡通信
上一篇:java連接rtx服務器發送通知
下一篇:求一份FC-AE-1553協議
