打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
进程间的通信(邮槽)
一 邮槽 服务器端

HANDLE handle=CreateMailslot("\\\\.\\mailslot\\MyMailslot",0,MAILSLOT_WAIT_FOREVER,NULL);
if(INVALID_HANDLE_VALUE==handle)
{
MessageBox("创建邮槽失败!");
return ;
}
char buf[100];
DWORD dword;
if(!ReadFile(handle,buf,sizeof(buf),&dword,NULL))    // ReadFile  会发生阻塞,可以把这个函数弄到线程中去
{
MessageBox("读取失败!");
CloseHandle(handle);
return ;
}
MessageBox(buf);
CloseHandle(handle);




二 邮槽   客户端

HANDLE handle;
handle=CreateFile("\\\\.\\mailslot\\MyMailslot",GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
// 通过 CrateFile 这个函数来 打开邮槽
//设为OPEN_EXISTING。若一台机器既是客户机,也是服务器,这一设置便显得尤其重要 ----如果服务器没有创建邮槽,对API函数CreateFile的调用便会失败.如果服务器在远程工作,那 /////么.dwCreationDisposition参数便没什么意义
if(INVALID_HANDLE_VALUE==handle)
{
MessageBox("打开邮槽失败!");
return ;
}

char * buf="sdfsdfsdff";
DWORD dword;
if(!WriteFile(handle,buf,strlen(buf)+1,&dword,NULL))
{
MessageBox("写数据失败!");

CloseHandle(handle);

return ;
}
------------------------------------------------------
上面的邮槽 是在 本地进程之间通信  \\\\.     代表 是本地   

如果想实现在局域网中 一个client  发送给 所有的 server

server 端 创建邮槽的时候 使用
HANDLE handle=CreateMailslot("\\\\.\\mailslot\\MyMailslot",0,MAILSLOT_WAIT_FOREVER,NULL);
if(INVALID_HANDLE_VALUE==handle)

client 端 通过CreateFile 来打开邮槽
 
handle=CreateFile("\\\\*\\mailslot\\MyMailslot",GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
这样一个客户端发送文件后  就会以广播的放松发送给所有的 server端

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
邮槽
MFC 加载 和显示图片的几个函数与例子 ,可以显示任何图片
Windows API一日一练(54)WriteFile和ReadFile函数
使用文件设备
文件操作:CreateFile和WriteFile的学习
CreateFile 函数说明
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服