zoukankan      html  css  js  c++  java
  • [C++] socket -7 [邮槽]

    ::利用邮槽实现windons进程通信

    ::一般情况下CreateMailslot()常被使用在进程通信的服务器上,在客户端则是用函数CreateFile()打开指定的邮槽之后进行相关的操作。

    ::将通过有草读取数据的通信一方成为服务器,而通过邮槽写入数据的一方成为客户端。

     1 /*
     2 服务器端
     3 */
     4 #include<windows.h>
     5 #include<stdio.h>
     6 void main()
     7 {
     8     HANDLE mail;//定义邮槽句柄
     9     mail=CreateMailslot("\\.\mailslot\mysolt",0,MAILSLOT_WAIT_FOREVER,NULL);//创建邮槽
    10     if(mail==INVALID_HANDLE_VALUE)//判断邮槽句柄
    11     {
    12         printf("创建邮槽失败!
    ");
    13         CloseHandle(mail);
    14     }
    15     else
    16     {
    17         const char text[200];//定义字符数组
    18         DWORD readtext;//获取实际读取值
    19         printf("创建邮槽成功!正在读取数据..
    ");//[[接下来等待数据客户端写数据,客户端一旦写好就读出数据]
    20         if(ReadFile(mail,text,200,&readtext,NULL))//读取数据
    21         {
    22             printf(text);
    23         }
    24         else
    25         {    
    26             printf("
    数据读取失败!
    ");
    27         }
    28     }    
    29     CloseHandle(mail);//关闭邮槽
    30     Sleep(10000);
    31     return;
    32 }
     1 /*
     2 客户端
     3 */
     4 #include<windows.h>
     5 #include<stdio.h>
     6 void main()
     7 {
     8     HANDLE mail2;//定义邮槽句柄
     9     char text[]="您好,this is a message";//初始化消息
    10     DWORD writetext;//实际发送值
    11     mail2=CreateFile("\\.\mailslot\mysolt",GENERIC_WRITE,FILE_SHARE_READ,
    12         NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);//打开文件
    13     if(INVALID_HANDLE_VALUE==mail2)
    14     {    
    15         printf("邮槽打开失败!
    ");
    16     }
    17     else
    18     {    
    19         if(WriteFile(mail2,text,sizeof(text),&writetext,NULL))//写入数据
    20         {    
    21             Sleep(1000);
    22             printf("数据写入成功!
    ");
    23         }
    24         else 
    25         {
    26             printf("数据写入失败!
    ");
    27         }
    28         CloseHandle(mail2);//关闭句柄
    29     }
    30     Sleep(10000);
    31     return;
    32 }
  • 相关阅读:
    C++模板学习之优先队列实现
    static 和const分别怎么用,类里面static和const可以同时修饰成员函数吗?
    C和C++的区别
    C++多态例子_虚函数
    转:master公式(主方法)
    C++11最常用的新特性如下
    转:哈夫曼树详解
    linux shell脚本
    linux 正则表达式
    linux shell命令
  • 原文地址:https://www.cnblogs.com/zjutlitao/p/3692501.html
Copyright © 2011-2022 走看看