我正在尝试创建一个需要通过网络进行通信的应用。我在这里关注命名管道的MSDN文档:http://msdn.microsoft.com/en-us/library/bb546085.aspx
我已经尝试过MSDN的代码,但没有运气。
我看到了“。”必须用客户端的网络名称替换,我做了。我尝试了网络名称和服务器PC名称,但都无法连接到服务器(我的笔记本电脑)。
现在我不知道该怎么做 - 有什么建议吗? (下面的代码让我“找不到网络路径”)
using System;
using System.IO;
using System.IO.Pipes;
class PipeClient
{
static void Main(string[] args)
{
using (NamedPipeClientStream pipeClient =
new NamedPipeClientStream("xxx.xxx.x.x", "testpipe", PipeDirection.InOut))
{
// Connect to the pipe or wait until the pipe is available.
Console.Write("Attempting to connect to pipe...");
pipeClient.Connect();
Console.WriteLine("Connected to pipe.");
Console.WriteLine("There are currently {0} pipe server instances open.",
pipeClient.NumberOfServerInstances);
using (StreamReader sr = new StreamReader(pipeClient))
{
// Display the read text to the console
string temp;
while ((temp = sr.ReadLine()) != null)
{
Console.WriteLine("Received from server: {0}", temp);
}
}
}
Console.Write("Press Enter to continue...");
Console.ReadLine();
}
}
答案 0 :(得分:3)
当您指定计算机名称,甚至是您自己的计算机名称时,它使用标准网络协议/堆栈等。
您可能需要打开防火墙端口。 TCP 445.此外,默认情况下,Windows允许所有传出通信。您应该只需要添加入站端口例外。您的配置可能会有所不同。 .NET 3.5 (C#) Named pipes over network