windows namedPipe 命名管道clent and server
2024-10-15 12:31:17
1.client:
#include "iostream"
#include "windows.h" using namespace std;
void main(int argc,char* argv[])
{
LPCTSTR Message="the pipe's message from a client to server.";
if(argc==)
Message=argv[];
DWORD WriteNum; if(WaitNamedPipe("\\\\.\\Pipe\\Test",NMPWAIT_WAIT_FOREVER)==FALSE){
cout<<"等待链接失败!"<<endl;
return;
} HANDLE hPipe=CreateFile("\\\\.\\Pipe\\Test",GENERIC_READ|\
GENERIC_WRITE,,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hPipe==INVALID_HANDLE_VALUE){
cout<<"管道打开失败!"<<endl;
return;
} cout<<"管道连接成功"<<endl;
if(WriteFile(hPipe,Message,strlen(Message),&WriteNum,NULL)==FALSE){
cout<<"数据写入管道失败!"<<endl;
}
CloseHandle(hPipe);
}
2.server:
#include "iostream"
#include "windows.h"
using namespace std; void main(){
char buffer[];
DWORD ReadNum; HANDLE m_hPipe=CreateNamedPipe("\\\\.\\Pipe\\Test",PIPE_ACCESS_DUPLEX,PIPE_TYPE_BYTE|PIPE_READMODE_BYTE,,,,,NULL); if(m_hPipe==INVALID_HANDLE_VALUE)
cout<<"创建命名管道失败!"<<endl; while(){
if(ConnectNamedPipe(m_hPipe,NULL)==FALSE){
CloseHandle(m_hPipe);
cout<<"与客户机建立链接失败"<<endl;
} if(ReadFile(m_hPipe,buffer,,&ReadNum,NULL)==FALSE)
cout<<"read pipe failer!\n"<<endl; else{
buffer[ReadNum]=;
cout<<"read pipe is:"<<buffer<<".\n"<<endl;
} if(DisconnectNamedPipe(m_hPipe)==FALSE)
cout<<"终止链接失败"<<endl;
else
cout<<"成功终止链接"<<endl;
if(strcmp(buffer,"end")==)
break;
} CloseHandle(m_hPipe);
}
最新文章
- #8.31课堂总结#JS基础
- 使用sql语句创建修改SQL Server标识列(即自动增长列)
- DA - 信息分析思路概要
- opencv6.1-imgproc图像处理模块之平滑与形态学操作
- 图解SQL多表关联查询
- leetcode23 多个拍好序的链表进行归并排序 (java版本)
- 【转】JSONP简介
- ThreadSafeClientConnManager的20个例子
- java工程开发之图形化界面之(第五课)
- 从零安装Scrapy心得 | Install Python Scrapy from scratch
- R语言学习——数据合并及绘制密度分布曲线图
- mysql 5.7~默认sql_mode解读
- Spring Boot 2.x (十):构建优雅的RESTful接口
- [转]MingGW64 多个版本区别(silj, seh)
- PHP实现网络Socket及IO多路复用
- PAT 1066 图像过滤
- Faster rcnn代码理解(3)
- leetcode-algorithms-16 3Sum Closest
- 【java编程】使用System.getProperty方法,如何配置JVM系统属性
- jmeter解决登录token获取