问题标签 [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.
c# - 我必须中止这个线程吗?等待命名管道。我该如何正确地做到这一点?
我对相同的代码还有另一个问题,并在客户端关闭它后保持管道打开
但是在这里我有一个问题优雅地终止我的应用程序。我的主要代码如下。有2个问题。1)我正在使用 Thread.Abort 和 2)这个应用程序实际上并没有结束。我可以设置一个断点并看到 abort 被调用并进入结束大括号,但 IDE 仍处于调试模式并且进程仍处于活动状态(在进程管理器中)。我如何正确终止这个?
c# - pipeStream.WaitForConnection 的替代方案,一种传递消息的方法?
我的应用程序正在通过 cmd 行启动,如果存在另一个实例,我将通过管道向它发送 cmd 行数据。我正在使用 NamedPipeServerStream ATM。问题是当我收听传入的数据时,我可能无法得到它。和 ATM 因为 WaitForConnection 阻塞我无法终止我的应用程序。
或者,我正在考虑不发送 cmd 行数据而只是将其插入数据库,但是我需要一种将 msg 发送到正在运行的实例的方法。方式应该是单声道兼容的。我在想只是不要打扰并每隔几分钟检查一次数据库的更新。
相关问题:远程关闭后保持管道打开的最佳方法
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。
现在我该怎么办?
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”一样?
c# - 2 关于命名管道的问题
嗨,我有几个关于使用命名管道的问题。
首先,当尝试设置管道服务器时,我注意到如果我使用下面的代码.. 在第一个客户端连接结束时,服务器将变得不可用,除非我将整个事情包装在一段时间(真)块中。我做对了吗?还是每个服务器只应该激活一次然后死掉?
其次,我还不得不在自己的线程上分离服务器 - 如果我不这样做,我的应用程序将无法使用。这是正常的吗?我做对了吗?我以为我在某处读到,namedpipeserverstream 为自己创建了自己的线程,但我看不出是这种情况。
谢谢!
winapi - Windows上本地IPC的套接字与命名管道?
是否有任何理由偏爱命名管道而不是本地 IPC(都使用 win-api)、effort-wize、resource-wize 或其他方式的套接字,因为两者的行为非常相似(并且很可能被类似的接口抽象出来),在可能已经将套接字用于网络目的的应用程序中?
我至少可以说出寻址问题:套接字的端口号与管道的文件名。此外,命名管道 (AFAIK) 不会警告防火墙(阻止/解除阻止对话框),尽管被阻止的应用程序仍然可以通过本地套接字进行通信。还有什么要考虑的吗?
在使用套接字的情况下,在本地使用套接字时是否有任何推荐的 winsock 设置/标志?
c# - C# 和 Python 之间的命名管道
我正在尝试在两个程序之间创建双向通信通道(一个在 Python 中,另一个在 C# 中)
当我在两个 C# 程序或两个 Python 程序之间创建命名管道时,一切正常,但是当我尝试(例如)从 Python 代码连接到 C# 服务器时,它不起作用:
C#代码:
如果我win32pipe
在 Python 中使用,代码块ConnectNamedPipe
(它永远不会返回)
如果我使用 open 函数,它只是建立一个连接,但没有任何反应:
现在,如果我关闭 Python 程序,C# 服务器只会从 Python 接收到一个数据项,并且System.IO.IOException
会出现“管道损坏”消息
我做错什么了吗?
c# - 单声道,unix 套接字
有谁知道创建 unix 域套接字并以异步方式侦听它的 c#(单声道)应用程序示例?
c - Windows 命名管道问题
我正在编写一个通过命名管道与用户级应用程序通信的驱动程序。用户态应用程序通过调用 CreateNamedPipe() 创建命名管道,然后通过调用 IOCTL 将管道名称传递给驱动程序。然后驱动程序通过调用 ZwCreateFile() 打开管道。
用户态应用程序然后点击一个循环,从管道读取请求,处理请求并将结果写回管道,即:
驱动程序基本上将请求写入管道,然后直接读回答案:
我的问题是,如果 ReadAnswerFromPipe 在应用程序中发生 WriteToPipe 之前发生在驱动程序中,则 ReadAnswerFromPipe 永远不会返回。所以基本上在做
解决问题。
为什么我会看到这个?
澄清:我正在使用两个不同的单向管道,尽管应用程序最终成功调用了 WriteToPipe,但 ReadAnswerFromPipe 调用永远不会返回......
winapi - 从 activeX 控件内部使用 Windows 命名管道 - 可能吗?
我开始设计一个 DMO 以从 Internet Explorer 中的 Windows 媒体播放器 activeX 控件内部运行。
有什么理由为什么在 DMO 内部使用 Windows 命名管道不起作用?
用户权限/特权/内核模式的东西?
谢谢 :) 罗伊