Windows 命名管道1

Windows 命名管道 - 客户端


概述:

命名管道是通过网络来完成进程间的通信的,它屏蔽了底层的网络协议细节。
所以在不了解网络协议的情况下,也可以利用命名管道来实现进程间的通信。
命名管道充分利用了Windows NT和Windows 2000内建的安全机制。
命名管道是围绕Windows文件系统设计的一种机制,采用“命名管道文件系统(Named Pipe File System,NPFS)”接口。
将命名管道作为一种网络编程方案时,它实际上建立了一个客户机/服务器通信体系,并在其中可靠地传输数据。
创建管道的进程称为管道服务器,连接到一个管道的进程称为管道客户机。
管道服务器和一台或多台管道客户机进行单向或双向的通信。
一个命名管道的所有实例共享同一个管道名,但是每一个实例均拥有独立的缓存与句柄,
并且为客户——服务通信提供一个分离的管道。
实例的使用保证了多个管道客户能够在同一时间使用同一个命名管道。


以下代码为DLL库中的单元文件。


客户端代码:

UnmpClient.pas

(*-------------------------------------------------------------------------- Delphi菜鸟XiaoBin 2006.5.31于黑龙江草甸子 http://blog.csdn.net/xiaobin_hlj80 veic_2005@163.com --------------------------------------------------------------------------*) // 2006.12.22 // xiaobin unit UnmpClient; interface uses Windows; var m_hInPipe:THandle; function CreateNamedPipeClient:DWORD;stdcall; implementation function CreateNamedPipeClient:DWORD; var connPipe:Boolean; begin connPipe := WaitNamedPipe('\\.\pipe\xiaobin',120000); if connPipe = false then begin Result := 0; end; m_hInPipe := CreateFile('\\.\pipe\xiaobin', GENERIC_READ, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (m_hInPipe=0) or (m_hInPipe=INVALID_HANDLE_VALUE) then begin //CloseHandle(m_hInPipe); Result := 0; end; Result := m_hInPipe; end; end.
客户端主要调用2个API函数:

WaitNamedPipe、CreateFile第一个函数功能为是否有一个我们已知的命名管道,没有返回0;

第二个函数功能为连接一个我们已知的命名管道,失败返回0;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值