作者woo0422 (woo0422)
看板C_and_CPP
標題[問題] 緩衝區(buffer)問題
時間Mon Feb 1 16:26:44 2016
開發平台:Linux
語言:c c++
額外函式庫:socket,opencv
問題:
想請問大家有關緩衝區的問題,
就是目前我用socket收資料,
但因傳送端我無法控制,他會一直傳
而我接受要處理資料,
但我遇到一個問題是,
我要還在處理時他就又傳進來
所以緩衝區好像就被蓋掉了
以我對程式的理解是,程式會從上到下執行
所以我在處理的時後,假設又有資料傳進來
緩衝區可能不會接受到?
或有接受但資料被改變?
另外想請問
我想把程式寫成一個主程式
開了之後會去叫另外兩個程式
然後兩個主程式都會動作
接受端放到緩衝的資料另一個主程式可以拿來用
請問我這種想法可以實現嗎?
是否有關鍵字可以查詢資料
不是本科系,以前學硬體
剛學程式兩個月,
完全不知道這問題該怎麽查資料.. 囧
也請大家能不能推薦關於平行處理 open cl 的資料 謝謝!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.13.17.214
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1454315206.A.78B.html
※ 編輯: woo0422 (39.13.17.214), 02/01/2016 16:27:41
→ Caesar08: 可以分程式(如fork),但分thread會比較好 02/01 17:08
推 overhead: 1.你的os會在資料傳來時先幫你存在它自己開的buffer裡, 02/01 22:11
→ overhead: 等你recv時資料被拿出。由於buffer空間有限,你recv太慢 02/01 22:11
→ overhead: 的話,前面收到的會被蓋掉。2.關鍵字multi thread 02/01 22:11
→ woo0422: 謝謝樓上兩位的資訊,謝謝 02/02 14:04
推 fr3ak: 等等. IIRC, 從 physical layer 收到 packet 開始, 在往上 02/03 23:17
→ fr3ak: 跑的過程中, 經過的 queues and buffers, 沒有一個會在記憶 02/03 23:17
→ fr3ak: 體不夠的時候發生 "覆蓋". 都只是把往上跑的東西 drop 掉 02/03 23:18