Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
网络上的C#命名管道_C# - Fatal编程技术网

网络上的C#命名管道

网络上的C#命名管道,c#,C#,我正在尝试制作一个需要通过网络进行通信的应用程序。我在这里查看了命名管道的MSDN文档: 我尝试了MSDN的代码,但没有成功 我看到在客户端,必须将“.”替换为网络名称,我做到了。我尝试了网络名称和服务器PC名称,但都未能连接到服务器(我的笔记本电脑) 现在我不知道该怎么办-有什么建议吗?(下面的代码告诉我“未找到网络路径”) 当您指定计算机名,甚至您自己的计算机名时,它使用标准网络协议/堆栈/等 您可能需要打开防火墙端口。TCP 445。此外,默认情况下,Windows允许所有传出通信。您应该

我正在尝试制作一个需要通过网络进行通信的应用程序。我在这里查看了命名管道的MSDN文档:

我尝试了MSDN的代码,但没有成功

我看到在客户端,必须将“.”替换为网络名称,我做到了。我尝试了网络名称和服务器PC名称,但都未能连接到服务器(我的笔记本电脑)

现在我不知道该怎么办-有什么建议吗?(下面的代码告诉我“未找到网络路径”)


当您指定计算机名,甚至您自己的计算机名时,它使用标准网络协议/堆栈/等

您可能需要打开防火墙端口。TCP 445。此外,默认情况下,Windows允许所有传出通信。您应该只需要添加入站端口异常。当然,您的配置可能会有所不同。

服务器必须能够接受管道请求@DJ KRAZE-代码与上面的MSDN文档链接相同,只是我更改了我提到的“.”。您如何启用命名管道,或者如何知道服务器是否正在接受请求?我希望我提供给您的链接能够正常工作..对不起,我有一分钟的时间来回答我的另一个问题。。如果您仍有问题,请告诉我们这对您有何帮助。。快乐编码..我为服务器启用了TCP 445。我发现MSDN文档上的客户机代码有问题,它总是会关闭控制台,因为它需要参数,所以我改用此代码:-使用网络名称或服务器pc名称,当它执行pipeClient.Connect()时,我会得到“未找到网络路径”。显然,它仅限于LAN…-是否有1通过路由器在网络上工作?您想要NamedPipeClientStream还是NamedPipeServerStream查看此MSDN:站点它也有一些好的信息和代码。您能否显示您正在使用的代码,以便我可以使用我的namedpipes对其进行测试。。我两者都需要?NamedPipeClientStream是问题所在,因为我无法连接。上面的链接证明您可以在网络上使用命名管道。
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();
    }
}