主題:[求助]LINUX -socket Can 連續(xù)發(fā)送數據問題 共有50235人關注過本帖 |
---|
hzc |
1樓 信息 | 搜索 | 郵箱 |
加好友 發(fā)短信 員工 |
Post By:2014-5-21 10:45:00 [顯示全部帖子]
你好,can是可以連續(xù)發(fā)送數據幀的,循環(huán)調用write()函數發(fā)送數據的測試情況如下:
如果沒有解決問題,可以將你的詳細情況發(fā)送郵件或者直接通過電話和我們交流,謝謝。
|
單帖管理 | 引用 | 回復 |
hzc |
2樓 信息 | 搜索 | 郵箱 |
加好友 發(fā)短信 員工 |
Post By:2014-5-21 11:27:00 [顯示全部帖子]
你好,把延時去掉了,這是使用的測試程序: for(i=0;i<500;i++) nbytes = write(s, &frame, sizeof(struct can_frame)); 這是測試的結果:
在連續(xù)調用500次write()后,數據沒有丟失。 |
單帖管理 | 引用 | 回復 |
hzc |
3樓 信息 | 搜索 | 郵箱 |
加好友 發(fā)短信 員工 |
Post By:2014-5-21 15:11:00 [顯示全部帖子]
你好,查看write()函數的返回值,有出現-1的情況,說明有數據沒有發(fā)送出去,“丟掉的”數據就是沒有發(fā)送出去的數據。 可以在程序中增加發(fā)送是否成功的判斷:if(nbytes!=sizeof(struct can_frame)),如果發(fā)送失敗就重新發(fā)送。 |
單帖管理 | 引用 | 回復 |