在NamedPipe编程中,客户端的WaitNamedPipe函数老是返回error code为2,忘大虾指教

yacht99 2004-11-15 10:29:08
客户端程序如下:
#include <windows.h>
#include <stdio.h>

#define PIPE_NAME "\\\\.\\Pipe\\DownDATA\\CMDSendPipe"

void main(void)
{

HANDLE PipeHandle;
DWORD BytesWritten;

if (WaitNamedPipe(PIPE_NAME, NMPWAIT_WAIT_FOREVER) == 0)
{
printf("WaitNamedPipe failed with error %d\n",
GetLastError());
return;
}

// Create the named pipe file handle
if ((PipeHandle = CreateFile(PIPE_NAME,
GENERIC_READ | GENERIC_WRITE, 0,
(LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
(HANDLE) NULL)) == INVALID_HANDLE_VALUE)
{
printf("CreateFile failed with error %d\n", GetLastError());
return;
}


printf("Wrote %d bytes", BytesWritten);

CloseHandle(PipeHandle);
}
...全文
747 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingzai 2004-11-15
  • 打赏
  • 举报
回复
use this example:
void ConPipe()
{
int result;
if(!::WaitNamedPipe("\\\\.\\pipe\\mynamedpipe",NMPWAIT_USE_DEFAULT_WAIT))
{ perror("Wait fail!");return;}

HANDLE handle;
handle=::CreateFile("\\\\.\\pipe\\mynamedpipe",
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if( handle==INVALID_HANDLE_VALUE )perror("Create File Fail\n");
char buf[128]="hello world";

DWORD writed;
::WriteFile(handle,buf,128, &writed,NULL);
::CloseHandle( handle );

}

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧