操作系统实验4 使用命名管道实现进程通信

实验4 使用命名管道实现进程通信

一、实验目的

(1)了解windows系统环境下的进程通讯机制。
(2)熟悉Windows系统提供的进程通信API。

二、实验准备

 CreateNamePipe()		创建一个命名管道。管道的命名方式为\\ServerName\pipe\pipename
 ConnectNamePipe()		服务器连接命名管道
 DisconnectNamePipe() 	拆除命名管道服务器与客户端的连接。
 CallNamePipe() 		客户端连接服务器建立的命名管道。
 WaitNamedPipe()        客户端等待服务器连接命名管道。
 GetLastError()         以上函数都可调用此函数查询失败的原因。
 int strcmp (const char *s1, const char *s2)     比较s1和s2字符串,相等返回0。
 char *strcpy(char *dest, const char *src)       把 src 所指向的字符串复制到 dest。
 ReadFile() WriteFile() 文件读写     

文件读写(Windows API)–ReadFile、WriteFile

三、实验内容

(一)实验内容

  使用命名管道完成两个进程之间的通信。  

(二)主要代码(部分代码)

PipeServer.cpp
// PipeServer.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "PipeServer.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/
// The one and only application object

CWinApp theApp;

using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
   
	int nRetCode = 0;
    int err; 
    bool rc; 
    HANDLE hPipeHandle1; 
      
    char lpName[] = "\\\\.\\pipe\\myPipe"; 
    char InBuffer[50] = ""; 
    char OutBuffer[50] = ""; 
    DWORD BytesRead, BytesWrite; 
      
    //创建一个命名管道  
    hPipeHandle1 = CreateNamedPipe((LPCTSTR)lpName,  
        PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED | WRITE_DAC , 
        PIPE_TYPE_MESSAGE | PIPE_READMODE_BYTE | PIPE_WAIT, 1, 20, 30,  
        NMPWAIT_USE_DEFAULT_WAIT,
		(LPSECURITY_ATTRIBUTES)NULL); 
    //判断命名管道是否创建成功
  
    if
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值