【问题标题】:Cannot connect server and client using named pipes无法使用命名管道连接服务器和客户端
【发布时间】:2014-03-13 16:06:33
【问题描述】:

我在命名管道的互联网上阅读了很多示例。由于某种原因,我无法使其工作。无论如何,这是我的代码:

服务器:

    static void Main(string[] args)
    {
        NamedPipeServerStream server = new NamedPipeServerStream("1234");
        server.WaitForConnection();

        Console.Beep(); // connection successful! 
    }

客户:

    static void Main(string[] args)
    {                    
        NamedPipeClientStream client = new NamedPipeClientStream("1234");
        client.Connect();

        Console.WriteLine("Connected!");
        Console.Read();
    }

我有两个不同的可执行文件。我先启动服务器程序,然后启动客户端。为什么我无法连接?

【问题讨论】:

  • 您的代码对我有用,尽管我确实将 Console.Beep 替换为 Console.WriteLine("Connected!");Console.Read();
  • 这段代码也适用于我,所以什么不起作用 Tono Nam
  • 可能Console.Beep 坏了。

标签: c# named-pipes


【解决方案1】:

一个可能的原因:您从 2 个不同的安全上下文启动进程(即一个“以管理员身份运行”,另一个以普通用户身份运行)。在这种情况下,如果不在命名管道上设置安全性,就无法建立连接...

可能还存在具有此名称的现有命名管道(以某种方式或在另一个用户下被孤立),但我希望在这种情况下至少有一个程序会失败。考虑重新启动您的机器以防万一(或者最好使用其中一种 Sysitnerals 工具来查看是否已经存在具有此名称的管道)。

【讨论】:

    猜你喜欢
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    相关资源
    最近更新 更多