命名管道進程通信
阿新 • • 發佈:2018-03-15
start 技術分享 false article 分享圖片 tin ati center IT
?
client:
?
control:
命名管道進程通信
效果: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<<"鏈接成功\n"<
//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\n"; else cout<<"open named pipe ok\n"; } void f_write(char *a){ if(WriteFile(hpipe,a,256,&wlen,0)==FALSE){ cerr<<"client write error\n"; } else{ cout<<"client write ok. context is:"<
//通過編程實現先開啟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; }
命名管道進程通信