浅谈C/C++进程间通信(一)

概念:进程间通信是指在系统中两个或多个进程之间通过第三方进行数据共享

通信方式:邮槽,命名管道,匿名管道等。

 

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
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值