概念:进程间通信是指在系统中两个或多个进程之间通过第三方进行数据共享。
通信方式:邮槽,命名管道,匿名管道等。
1.1邮槽
概念:邮槽是Windows提供的一种单向通信的机制。即进程中的一方只能写入或读取数据,而另一方则只能读入或写入数据。
场所:当用户实现一对多或跨网络的进程之间的通信。
缺点:传输率小,一般400kb左右,若数据过大,肯能导致邮槽不能工作。
1.2常用函数:
创建邮槽
HANDLE CreateMailslot( LPCTSTR lpName, // mailslot name DWORD nMaxMessageSize, // maximum message size DWORD lReadTimeout, // read time-out interval LPSECURITY_ATTRIBUTES lpSecurityAttributes // inheritance option );
///打开邮槽
HANDLE CreateFile( LPCTSTR lpFileName, // file name DWORD dwDesiredAccess, // access mode DWORD dwShareMode, // share mode LPSECURITY_ATTRIBUTES lpSecurityAttributes, // SD DWORD dwCreationDisposition, // how to create DWORD dwFlagsAndAttributes, // file attributes HANDLE hTemplateFile // handle to template file );
///操作邮槽
BOOL ReadFile( HANDLE hFile, // handle to file LPVOID lpBuffer, // data buffer DWORD nNumberOfBytesToRead, // number of bytes to read LPDWORD lpNumberOfBytesRead, // number of bytes read LPOVERLAPPED lpOverlapped // overlapped buffer );BOOL WriteFile( HANDLE hFile, // handle to file LPCVOID lpBuffer, // data buffer DWORD nNumberOfBytesToWrite, // number of bytes to write LPDWORD lpNumberOfBytesWritten, // number of bytes written LPOVERLAPPED lpOverlapped // overlapped buffer );1.3邮槽实例:文件:slotSev.cpp
文件:slotClt.cpp