[问题] 缓冲区(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