0

0

命名管道跨进程通讯

炎欲天舞

炎欲天舞

发布时间:2017-08-04 10:06:32

|

2614人浏览过

|

来源于php中文网

原创

客户端代码:


#include "stdafx.h"  
#include   
#include   
#include   
  
int main(int argc, _TCHAR* argv[])  
{  
    srand(time(NULL));  
  
    DWORD wlen = 0;  
    Sleep(1000);//等待pipe的创建成功!  
  
    BOOL bRet = WaitNamedPipe(TEXT("\\\\.\\Pipe\\mypipe"), NMPWAIT_WAIT_FOREVER);  
  
    if (!bRet)  
    {  
        printf("connect the namedPipe failed!\n");  
        return 0;  
    }  
  
    HANDLE hPipe = CreateFile(          //管道属于一种特殊的文件  
        TEXT("\\\\.\\Pipe\\mypipe"),    //创建的文件名  
        GENERIC_READ | GENERIC_WRITE,   //文件模式  
        0,                              //是否共享  
        NULL,                           //指向一个SECURITY_ATTRIBUTES结构的指针  
        OPEN_EXISTING,                  //创建参数  
        FILE_ATTRIBUTE_NORMAL,          //文件属性(隐藏,只读)NORMAL为默认属性  
        NULL);                          //模板创建文件的句柄  
  
    if (INVALID_HANDLE_VALUE == hPipe)  
    {  
        printf("open the exit pipe failed!\n");  
    }  
    else  
    {  
        while(true)  
        {  
            char buf[256] = "";  
            sprintf(buf,"%s%d",buf,rand()%1000);  
            if(WriteFile(hPipe,buf,sizeof(buf),&wlen,0)==FALSE) //向服务器发送内容  
            {  
                printf("write to pipe failed!\n");  
                break;  
            }  
            else  
            {  
                printf("To Server: data = %s, size = %d\n", buf, wlen);  
                char rbuf[256] = "";  
                DWORD rlen = 0;  
                ReadFile(hPipe, rbuf, sizeof(rbuf), &rlen, 0);  //接受服务发送过来的内容  
                printf("From Server: data = %s, size = %d\n", rbuf, rlen);  
            }  
            Sleep(1000);  
        }  
        CloseHandle(hPipe);//关闭管道  
    }  
  
    system("pause");  
    return 0;  
}

服务端代码:

WiseHome家政预约小程序
WiseHome家政预约小程序

家政服务平台系统包含家用电器安装清洗、搬家、家电维修、管道疏通、月嫂保姆、育儿陪护、上门开锁等多种服务项目,用户可以直接通过家政小程序咨询,在线预约服务类型,同时还设置有知识科普,给用户科普一些清洁保养小技巧,让用户能够足不出户就可以直接预约服务,方便又快捷。本项目使用微信小程序平台进行开发。使用腾讯专门的小程序云开发技术,云资源包含云函数,数据库,带宽,存储空间,定时器等,资源配额价格低廉,无需

下载


#include "stdafx.h"  
#include   
#include   
#include   
  
int main(int argc, _TCHAR* argv[])  
{  
    srand(time(NULL));  
  
    char buf[256] = "";  
    DWORD rlen = 0;  
    HANDLE hPipe = CreateNamedPipe(  
        TEXT("\\\\.\\Pipe\\mypipe"),                        //管道名  
        PIPE_ACCESS_DUPLEX,                                 //管道类型   
        PIPE_TYPE_MESSAGE|PIPE_READMODE_MESSAGE|PIPE_WAIT,  //管道参数  
        PIPE_UNLIMITED_INSTANCES,                           //管道能创建的最大实例数量  
        0,                                                  //输出缓冲区长度 0表示默认  
        0,                                                  //输入缓冲区长度 0表示默认  
        NMPWAIT_WAIT_FOREVER,                               //超时时间  
        NULL);                                              //指定一个SECURITY_ATTRIBUTES结构,或者传递零值  
  
    if (INVALID_HANDLE_VALUE == hPipe)  
    {  
        printf("Create Pipe Error(%d)\n",GetLastError());  
    }  
    else  
    {  
        printf("Waiting For Client Connection...\n");  
  
        if(!ConnectNamedPipe(hPipe, NULL))  //阻塞等待客户端连接。  
        {  
            printf("Connection failed!\n");  
        }  
        else  
        {  
            printf("Connection Success!\n");  
        }  
  
        while (true)  
        {  
            if(!ReadFile(hPipe,buf,256,&rlen,NULL)) //接受客户端发送过来的内容  
            {             
                printf("Read Data From Pipe Failed!\n");  
                break;  
            }  
            else  
            {  
                printf("From Client: data = %s, size = %d\n", buf, rlen);  
                  
                char wbuf[256] = "";  
                sprintf(wbuf, "%s%d", wbuf, rand()%1000);  
                DWORD wlen = 0;  
                WriteFile(hPipe, wbuf, sizeof(wbuf), &wlen, 0); //向客户端发送内容  
                printf("To Client: data = %s, size = %d\n", wbuf, wlen);  
                Sleep(1000);  
            }  
        }  
        FlushFileBuffers(hPipe);   
        DisconnectNamedPipe(hPipe);   
        CloseHandle(hPipe);//关闭管道  
    }  
  
    system("pause");  
    return 0;  
}

相关专题

更多
菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

0

2026.01.22

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

9

2026.01.22

html编辑相关教程合集
html编辑相关教程合集

本专题整合了html编辑相关教程合集,阅读专题下面的文章了解更多详细内容。

56

2026.01.21

三角洲入口地址合集
三角洲入口地址合集

本专题整合了三角洲入口地址合集,阅读专题下面的文章了解更多详细内容。

51

2026.01.21

AO3中文版入口地址大全
AO3中文版入口地址大全

本专题整合了AO3中文版入口地址大全,阅读专题下面的的文章了解更多详细内容。

397

2026.01.21

妖精漫画入口地址合集
妖精漫画入口地址合集

本专题整合了妖精漫画入口地址合集,阅读专题下面的文章了解更多详细内容。

118

2026.01.21

java版本选择建议
java版本选择建议

本专题整合了java版本相关合集,阅读专题下面的文章了解更多详细内容。

3

2026.01.21

Java编译相关教程合集
Java编译相关教程合集

本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.21

C++多线程相关合集
C++多线程相关合集

本专题整合了C++多线程相关教程,阅读专题下面的的文章了解更多详细内容。

11

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 14万人学习

Git 教程
Git 教程

共21课时 | 2.9万人学习

AngularJS教程
AngularJS教程

共24课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号