项目是基本流程:别人把采集到的数据处理后,按照结构(1)方式传给我(在同一台机器上),我要做的工作是,把他给我的数据,再次按照一个结构(2)封装,且封装后添入发送数据队列。
问题:
1、若我声明一个结构(2)的对象,用来接受别人传给我的数据,我怎样才知道,数据恰好添完一个单元,然后把它添加到发送队列?
2、与传送给我的那边,怎样协调好数据同步问题,(因为我们这个项目是一个实时采集系统,数据是实时不断传入的)谢谢你的指点!
问题:
1、若我声明一个结构(2)的对象,用来接受别人传给我的数据,我怎样才知道,数据恰好添完一个单元,然后把它添加到发送队列?
2、与传送给我的那边,怎样协调好数据同步问题,(因为我们这个项目是一个实时采集系统,数据是实时不断传入的)谢谢你的指点!
我数据接受方端,也是我做,因为我现在做的是真个局域网的通信管理模块,转换成DDL后,让其他人调用。单元的具体大小,应该可以定,我可能采用定长的结构体
呵呵,不好意思,对于您所说的红绿灯信号量问题,能否再详细点?谢谢您的再次指点!
WaitForSingleObject(); //等待信号灯
ReleaseSemphore(); //释放信号灯
select判断是否有数据!recv接收定长数据,然后转换到结构(2)......与传送方不需要做数据同步吧?你用什么方式传的数据,socket?
我接受数据时,是采用单线程。不好意思,“select判断是否有数据”能否具体点,小弟真的不懂,谢谢您的指点!
我上面说的select是socket函数
唯一一点就是缓冲大小是固定的,而且管道使用nonpage内存,所以不宜开太大,具体看msdn
管道挺好用的,很方便也很简单,和文件差不多!你可以看MSDN CreateNamedPipe
如果你和别人是同一个进程,用匿名管道。不同进程用命名管道!pipe在本机上比socket好,不过socket也是可选的。当然还有好多种其它方法
有的话,请发[email protected],谢谢!