实验四使用命名管道实现进程通信.doc

实验四使用命名管道实现进程通信.doc

ID:58152734

大小:73.50 KB

页数:6页

时间:2020-04-25

实验四使用命名管道实现进程通信.doc_第1页
实验四使用命名管道实现进程通信.doc_第2页
实验四使用命名管道实现进程通信.doc_第3页
实验四使用命名管道实现进程通信.doc_第4页
实验四使用命名管道实现进程通信.doc_第5页
资源描述:

《实验四使用命名管道实现进程通信.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《操作系统》实验报告学生姓名:张鹏学号:实验地点:数计学院407实验室实验课时:3学时实验器材:计算机课程名称:计算机操作系统实验名称:2.4实验四:使用命名管道实现进程通信一、实验目的1、进一步掌握windows系统环境下进程通信机制。2、熟悉进程通信API二、实验环境及工具Windows7操作系统,VC6三、实验内容使用Windows系统提供的命名管道完成两个进程之间的通信,要求能正确使用创建命名管道CreateNamePipe()、连接命名管道ConnectNamePipe()、拆除命名管道的连接DisconnectNamePipe()、连接

2、服务器已建立的命名管道CallNamePipe()、等待命名管道WaitNamePipe()等API.四、实验步骤服务端//PipeServer.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include"PipeServer.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif//////////////////////////////

3、/////////////////////////////////////////////////TheoneandonlyapplicationobjectCWinApptheApp;usingnamespacestd;-6-《操作系统》实验报告int_tmain(intargc,TCHAR*argv[],TCHAR*envp[]){intnRetCode=0;interr;BOOLrc;HANDLEhPipeHandle1;charlpName[]="\\.\pipe\myPipe";charInBuffer[50]="";charOu

4、tBuffer[50]="";DWORDBytesRead,BytesWrite;hPipeHandle1=CreateNamedPipe((LPCTSTR)lpName,PIPE_ACCESS_DUPLEX

5、FILE_FLAG_OVERLAPPED

6、WRITE_DAC,PIPE_TYPE_MESSAGE

7、PIPE_READMODE_BYTE

8、PIPE_WAIT,1,20,30,NMPWAIT_USE_DEFAULT_WAIT,(LPSECURITY_ATTRIBUTES)NULL);if((hPipeHandle1==INVALID_HANDLE

9、_VALUE)

10、

11、(hPipeHandle1==NULL)){err=GetLastError();printf("ServerPipeCreatFail!err=%d",err);exit(1);}elseprintf("ServerPipeCreatSuccess!");while(1){rc=ConnectNamedPipe(hPipeHandle1,(LPOVERLAPPED)NULL);if(rc==0){err=GetLastError();printf("ServerPipeConnectFailerr=%d",err);

12、exit(2);}elseprintf("ServerPipeConnectSuccess");strcpy(InBuffer,"");strcpy(OutBuffer,"");rc=ReadFile(hPipeHandle1,InBuffer,sizeof(InBuffer),&BytesRead,(LPOVERLAPPED)NULL);if(rc==0&&BytesRead==0)-6-《操作系统》实验报告{err=GetLastError();printf("ServerReadPipeFailerr=%d",err);exit(3)

13、;}else{printf("ServerReadPipeSuccess!DATAfromClientis=%s",InBuffer);}rc=strcmp(InBuffer,"end");if(rc==0)printf("ServerWritePipeFail!");elseprintf("ServerWritePipeSuccess!");DisconnectNamedPipe(hPipeHandle1);rc=strcmp(OutBuffer,"end");if(rc==0)break;}printf("NowServerbe

14、END!");CloseHandle(hPipeHandle1);/*//initializeMFCandprinta

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。