简单单向通信机制-邮槽

1、邮槽

   1)什么是邮槽?

    邮槽是一种简单的单向通信机制。通过邮槽,客户机进程可将消息传送或广播给一个或多个服务器进程。在同一台计算机的不同进程之间,或在跨越整个网络的不同计算机的进程之间,协助进行消息的传输。

  2)邮槽的优点:简单,非常容易地将消息广播给一个或多个服务器。

     缺点:只允许客户机到服务器,数据是不可靠的。

 

示例程序:

  服务器端:

#include "stdafx.h"
#include <windows.h>

int main(int argc, char* argv[])
{
     HANDLE MailSlot;
     char Buffer[256];
     DWORD NumberOfBytesRead;
     memset(Buffer,0,256);
    

     if((MailSlot = CreateMailslot(".//Mailslot//MySlot",0,
          MAILSLOT_WAIT_FOREVER,NULL)) == INVALID_HANDLE_VALUE)
    {
           printf("Failed to create mailslot/n");
           return 0;
    }
   

    while(ReadFile(MailSlot,Buffer,256,&NumberOfBytesRead,NULL)!=0)
    {
           printf("%s/n",Buffer);
           memset(Buffer,0,256);
    }
   

    return 0;
}

 

客户端:

#include "stdafx.h"
#include <windows.h>
#include <process.h>

int main(int argc, char* argv[])
{
 HANDLE MailSlot;
 DWORD BytesWritten;
 char ServerName[256] = ".//Mailslot//MySlot";
 if((MailSlot = CreateFile(ServerName,GENERIC_WRITE,
  FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,
  NULL))==INVALID_HANDLE_VALUE)
 {
  printf("Create MailSlot failed/n");
 }
 if(WriteFile(MailSlot,"Test MailSlot msg",sizeof("Test MailSlot msg"),
  &BytesWritten,NULL) == 0)
 {
  printf("Write to MailSlot failed/n");
 }
 printf("Wrote %d Bytes to MailSlot/n",BytesWritten);

 system("PAUSE");
 return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值