我自己编了一个 server/client,视频采集程序,
每当一个client连到server时,我就创建一个子线程,通常子线程创建之后就单独运行,我的这个程序是为了实现SERVER/CLIENT的实时通信,SERVER把采集到每一帧视频实时的发送到CLIENT,实现视频监控。
请问如何实现?不知道PostThreadMessage这个函数能不能用?
谢谢!
每当一个client连到server时,我就创建一个子线程,通常子线程创建之后就单独运行,我的这个程序是为了实现SERVER/CLIENT的实时通信,SERVER把采集到每一帧视频实时的发送到CLIENT,实现视频监控。
请问如何实现?不知道PostThreadMessage这个函数能不能用?
谢谢!
这样,在子线程里就得设一个死循环,不断的检测是不是有新的数据?
建立两个BUFFER,一个放子线程给主线程的数据,另一个放主线程给子线程的数据,把这两个BUFFER和两个通告捆绑在一块,当有数据到时就给对应的线程发一个通告,其实我都是胡说的,我想没这么复杂,这些都是以前我写一个通信程序时用的.
你所说的方法很好,
怎样建立一个环状存储区?
谢谢!
handle = CreateEvent(NULL,true,true,"global\\myevent");
handle = OpenEvent(EVENT_ALL_ACCESS,false,"global\\myevent");数据可以通过内存文件进行转输:
handle = CreateFileMapping((HANDLE)0XFFFFFFFF,NULL,PAGE_READWRITE,
HIORDER_BUFFER_SIZE,LOORDER_BUFFER_SIZE,"global\\mymemory");
pbuffer = MapViewOfFile(handle,FILE_MAP_ALL_ACCESS,HIORDER_BUFFER_SIZE,LOORDER_BUFFER_SIZE,
0);handle = OpenFileMapping(.....)
pbuffer = MapViewOfFile(....);pbuffer就是内存指针,具体过程看你自己的了。
如果不用就轮训