[問題] 緩衝區(buffer)問題

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

Links booklink

Contact Us: admin [ a t ] ucptt.com