zoukankan      html  css  js  c++  java
  • 命名管道进程通信

    命名管道进程通信

    效果:server读取client发送的字符串。

     
    server:
    // named-pipe-server.cpp
    #include 
    #include 
    using namespace std;
    char buf[100];
    HANDLE hpipe; 
    DWORD rlen=0,wlen=0;
    void f_create(){
        hpipe=CreateNamedPipe("\\.\pipe\me",PIPE_ACCESS_DUPLEX ,
    	PIPE_TYPE_MESSAGE|PIPE_WAIT ,PIPE_UNLIMITED_INSTANCES,0,0,0,NULL);
    	
    	if(ConnectNamedPipe(hpipe, 0)==FALSE){//等待客户端链接 
          cerr<<"链接成功
    "<
     
    client:
    //named-pipe-client.cpp
    #include 
    #include
    #include 
    using namespace std;
    char buf[100];
    HANDLE hpipe; 
    DWORD rlen=0,wlen=0;
    void f_connect(){
    	WaitNamedPipe("\\.\pipe\me",NMPWAIT_WAIT_FOREVER);//等待连接
        hpipe=CreateFile("\\.\pipe\me", 
    	GENERIC_READ | GENERIC_WRITE, 0,
        NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);//打开管道 
        if(hpipe==INVALID_HANDLE_VALUE) cerr<<"open named pipe error
    ";
        else cout<<"open named pipe ok
    ";
    }
    void f_write(char *a){
    	if(WriteFile(hpipe,a,256,&wlen,0)==FALSE){
    		cerr<<"client write error
    ";
    	}
    	else{
    		cout<<"client write ok. context is:"<
     
    control:
    //通过编程实现先开启server。再打开 client。

    #include #include using namespace std; int main(int argc, char *argv[]) { system("start named-pipe-server.exe");//start 不能漏 Sleep(1000); system("start named-pipe-client.exe"); return 0; }

     
    执行效果
  • 相关阅读:
    poj1703
    poj 2385
    poj 3169 差分约束
    poj3723 最大权森林
    POJ3255 次短路
    图论算法----最小生成树
    给linux操作系统安装中文环境
    Windows下使用python
    pku3668 Game of Lines
    pku3670 Eating Together
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8573052.html
Copyright © 2011-2022 走看看