2013-01-24 83 views
2

無法創建命名管道W /犯錯0X0000007B命名管道錯誤:無法創建命名管道W /犯錯0X0000007B

我得到上面的錯誤,當我嘗試連接在不同的機器上的服務器和客戶端。

我從MSDN鏈接了該代碼:http://code.msdn.microsoft.com/windowsdesktop/CppNamedPipeCommunication-7447a0bf

我使用Windows 7計算機進行通信。

的#define FULL_PIPE_NAME L 「\\\\ \\管\\ SamplePipe」

要使用不同的機器通信的I改變上述行來:

的#define FULL_PIPE_NAME L「\ \\\\'我的機器的IP地址\\ pipe \\ SamplePipe「

注意:在同一臺機器本身,它只有在路徑爲:L」\\\\。\\ pipe \\ SamplePipe「 。如果我提供同一臺機器的IP地址,它會出現相同的錯誤。

回答

3

錯誤代碼0x0000007B是ERROR_INVALID_NAME(「文件名稱,目錄名稱或卷標語法不正確」)。 Read the documentation。當服務器調用CreateNamedPipe()時,它必須必須使用"\\.\pipe\SamplePipe"名稱,因爲它不能在另一臺機器上創建管道。當客戶端連接到管道時,如果連接到遠程或本地計算機上的管道,則它可以使用"\\ServerName\pipe\SamplePipe"名稱,或者僅在連接到本地計算機上的管道時使用"\\.\pipe\SamplePipe"名稱。客戶端不能使用服務器的IP地址,而必須使用服務器的網絡機器名稱。