2

无法创建命名管道 w/err 0x0000007b

当我尝试在不同的机器上连接服务器和客户端时出现上述错误。

我从 MSDN 链接获得的代码:http: //code.msdn.microsoft.com/windowsdesktop/CppNamedPipeCommunication-7447a0bf

我正在使用 Windows 7 机器进行通信。

#define FULL_PIPE_NAME L"\\\\.\\pipe\\SamplePipe"

为了与不同的机器通信,我将上面的行更改为:

#define FULL_PIPE_NAME L"\\\\我的机器的 IP 地址\\pipe\\SamplePipe"

注意:在同一台机器上,只有当路径是:L“\\\\.\\pipe\\SamplePipe”时它才会起作用。如果我提供同一台机器的 IP 地址,它会给出同样的错误。

4

1 回答 1

4

错误代码 0x0000007B 是ERROR_INVALID_NAME(“文件名、目录名或卷标语法不正确”)。 阅读文档。当服务器调用CreateNamedPipe()时,它必须只使用"\\.\pipe\SamplePipe"名称,因为它不能在另一台机器上创建管道。当客户端连接到管道时,"\\ServerName\pipe\SamplePipe"如果连接到远程或本地机器上的管道,它可以使用名称,或者"\\.\pipe\SamplePipe"仅当连接到本地机器上的管道时才使用名称。客户端不能使用服务器的 IP 地址,它必须使用服务器的网络机器名。

于 2013-01-24T10:50:20.043 回答