问题标签 [named-pipes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1191 浏览

c# - 我必须中止这个线程吗?等待命名管道。我该如何正确地做到这一点?

我对相同的代码还有另一个问题,并在客户端关闭它后保持管道打开

但是在这里我有一个问题优雅地终止我的应用程序。我的主要代码如下。有2个问题。1)我正在使用 Thread.Abort 和 2)这个应用程序实际上并没有结束。我可以设置一个断点并看到 abort 被调用并进入结束大括号,但 IDE 仍处于调试模式并且进程仍处于活动状态(在进程管理器中)。我如何正确终止这个?

0 投票
0 回答
979 浏览

c# - pipeStream.WaitForConnection 的替代方案,一种传递消息的方法?

我的应用程序正在通过 cmd 行启动,如果存在另一个实例,我将通过管道向它发送 cmd 行数据。我正在使用 NamedPipeServerStream ATM。问题是当我收听传入的数据时,我可能无法得到它。和 ATM 因为 WaitForConnection 阻塞我无法终止我的应用程序。

或者,我正在考虑不发送 cmd 行数据而只是将其插入数据库,但是我需要一种将 msg 发送到正在运行的实例的方法。方式应该是单声道兼容的。我在想只是不要打扰并每隔几分钟检查一次数据库的更新。

相关问题:远程关闭后保持管道打开的最佳方法

0 投票
2 回答
643 浏览

c# - VC++ 6.0 和 C# Visual Studio 2008 之间的命名管道

我正在做一个项目,其中我同时使用 VC++ 和 C#。VC++ 用于硬件接口(别无他法,我必须只使用 VC++)和我使用 C# 的应用程序端(micro soft Visual Studio 2008)。

为了让两个程序相互通信,我使用命名管道(这也是必须的)。

我能够在 C# 和 VC++ 之间进行通信,但不能在 VC++ 与 C# 之间进行通信。

我已经给出了我在 C# 中使用的代码。

这里的问题是sr.ReadLine(). 根本没有终止。它一旦找到 null 就应该停止,但是 VC++ 给出的 null 值在 C# 中不会被视为 NULL。

现在我该怎么办?

0 投票
2 回答
1166 浏览

c# - 使用 NamedPipeClientStream 等 .NET 3.5 功能的命名管道 C#

Windows(以及其他操作系统以及进程范围)中的命名管道?

我有这个奇怪的场景:

我写了一个程序,比如说“Controller.exe”,它产生了一堆“Workers.exe”,然后 Controller.exe 通过“PipeN”创建了一个名为“Pipe0”的命名管道。

然后 Workers.exe(以命令行 arg 作为管道名称开始)连接到该管道。

因此,该控制器.exe 的客户生成负载启动了 5 个程序实例(“controller.exe”),该程序创建了 5 次 Worker.exe 进程

但是在我的 Controller.exe 代码中,我创建了一个名为“Pipe0”...“PipeN”的命名管道...所以我的问题是这甚至是如何工作的!?

命名管道不是操作系统范围的吗?就像 Worker.exe 如何知道要连接到哪个命名管道“pipe0”一样?

0 投票
1 回答
416 浏览

c# - 2 关于命名管道的问题

嗨,我有几个关于使用命名管道的问题。

首先,当尝试设置管道服务器时,我注意到如果我使用下面的代码.. 在第一个客户端连接结束时,服务器将变得不可用,除非我将整个事情包装在一段时间(真)块中。我做对了吗?还是每个服务器只应该激活一次然后死掉?

其次,我还不得不在自己的线程上分离服务器 - 如果我不这样做,我的应用程序将无法使用。这是正常的吗?我做对了吗?我以为我在某处读到,namedpipeserverstream 为自己创建了自己的线程,但我看不出是这种情况。

谢谢!

0 投票
2 回答
16916 浏览

winapi - Windows上本地IPC的套接字与命名管道?

是否有任何理由偏爱命名管道而不是本地 IPC(都使用 win-api)、effort-wize、resource-wize 或其他方式的套接字,因为两者的行为非常相似(并且很可能被类似的接口抽象出来),在可能已经将套接字用于网络目的的应用程序中?

我至少可以说出寻址问题:套接字的端口号与管道的文件名。此外,命名管道 (AFAIK) 不会警告防火墙(阻止/解除阻止对话框),尽管被阻止的应用程序仍然可以通过本地套接字进行通信。还有什么要考虑的吗?

在使用套接字的情况下,在本地使用套接字时是否有任何推荐的 winsock 设置/标志?

0 投票
3 回答
13555 浏览

c# - C# 和 Python 之间的命名管道

我正在尝试在两个程序之间创建双向通信通道(一个在 Python 中,另一个在 C# 中)

当我在两个 C# 程序或两个 Python 程序之间创建命名管道时,一切正常,但是当我尝试(例如)从 Python 代码连接到 C# 服务器时,它不起作用:

C#代码:

如果我win32pipe在 Python 中使用,代码块ConnectNamedPipe(它永远不会返回)

如果我使用 open 函数,它只是建立一个连接,但没有任何反应:

现在,如果我关闭 Python 程序,C# 服务器只会从 Python 接收到一个数据项,并且System.IO.IOException会出现“管道损坏”消息

我做错什么了吗?

0 投票
2 回答
2413 浏览

c# - 单声道,unix 套接字

有谁知道创建 unix 域套接字并以异步方式侦听它的 c#(单声道)应用程序示例?

0 投票
5 回答
2174 浏览

c - Windows 命名管道问题

我正在编写一个通过命名管道与用户级应用程序通信的驱动程序。用户态应用程序通过调用 CreateNamedPipe() 创建命名管道,然后通过调用 IOCTL 将管道名称传递给驱动程序。然后驱动程序通过调用 ZwCreateFile() 打开管道。

用户态应用程序然后点击一个循环,从管道读取请求,处理请求并将结果写回管道,即:

驱动程序基本上将请求写入管道,然后直接读回答案:

我的问题是,如果 ReadAnswerFromPipe 在应用程序中发生 WriteToPipe 之前发生在驱动程序中,则 ReadAnswerFromPipe 永远不会返回。所以基本上在做

解决问题。

为什么我会看到这个?

澄清:我正在使用两个不同的单向管道,尽管应用程序最终成功调用了 WriteToPipe,但 ReadAnswerFromPipe 调用永远不会返回......

0 投票
2 回答
591 浏览

winapi - 从 activeX 控件内部使用 Windows 命名管道 - 可能吗?

我开始设计一个 DMO 以从 Internet Explorer 中的 Windows 媒体播放器 activeX 控件内部运行。

有什么理由为什么在 DMO 内部使用 Windows 命名管道不起作用?

用户权限/特权/内核模式的东西?

谢谢 :) 罗伊