一 邮槽 服务器端
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端
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。