草庐IT

管道化

全部标签

c++ - WAN 上 Windows 命名管道的低吞吐量

我在使用Windows命名管道时遇到性能低下的问题。随着网络延迟的增加,吞吐量迅速下降。每秒发送的消息与往返时间之间大致呈线性关系。似乎客户端必须在服务器发送下一条消息之前确认每条消息。这会导致性能非常差,我每秒只能通过RTT为200毫秒的链接发送5条(~100字节)消息。管道是异步的,使用多个重叠的写入操作(以及客户端的多个重叠读取),但这并没有提高吞吐量。是否可以通过命名管道并行发送消息?管道是使用PIPE_TYPE_MESSAGE创建的,PIPE_READMODE_BYTE会更好吗?有没有其他方法可以提高性能?这是一个已部署的解决方案,所以我不能简单地用套接字连接替换管道(我读过

php - 为什么我不能多次打开命名管道?

我似乎无法从PHP中多次打开Windows命名管道:$pipe1=fopen($pipeName,'r+');//(1)fclose($pipe1);$pipe2=fopen($pipeName,'r+');//(2)fclose($pipe2);(1)成功,我可以写入管道或在其上打开阻塞读取。(2)失败fopen(\\.\pipe\encoding):failedtoopenstream:Invalidargument“无效参数”似乎指的是模式,但我已经尝试了(1)和(2)之间所有不同的模式组合,没有任何区别。无论是在同一个进程还是另一个进程,它也会失败。我正在创建管道:Create

c# - 将管道参数发送到 C# 应用程序

我需要构建一个接受管道作为输入的简单控制台应用程序。我们正在运行WindowsServer2012。数据来自另一个将输入“管道”到此应用程序的应用程序。我从Linux的角度了解管道,但从Windows的角度不太了解它们。我最好的猜测是我需要像这样向我的应用程序发送输入:C:\app.exe当使用“我的问题是,任何人都可以给我一个示例,说明如何在我的应用程序中接收流指针或类似于Windows管道的东西,以便我可以读取输入吗? 最佳答案 当您使用时和>对于应用程序,标准输入和输出流(屏幕/键盘接口(interface))被文件流取代。您

c++ - 使用管道从子进程重定向 I/O - winapi

我正在使用一个提供api的应用程序,以便更轻松地编写脚本。基本上,当您编写有效输入时,它会输出一个答案。我想使用该输出来发送更多输入,例如:Input:Output:1,56,23InputOutput:"Apple"我想要做的是一个写入目标进程STDIN,然后从它的STDOUT读取输出的程序。为此,我主要从那里获取代码:CreatingaChildProcesswithRedirectedInputandOutput(Windows)-MSDN唯一的问题是,为了从子进程读取,我首先需要关闭用于写入它的父进程的句柄,这意味着我不能使用子进程的输出来写入更多的东西。这是从msdn中提取的

windows - Sphinx:增量合并上的权限被拒绝/管道损坏

当我启动这个用于创建和合并增量的批处理命令时:D:\Sphinx\bin\indexer.exe--configD:\Sphinx\project\product.confidx_product_delta--rotateD:\Sphinx\bin\indexer.exe--configD:\Sphinx\project\product.conf--mergeidx_product_mainidx_product_delta--rotate在searchd.log中发现了这个错误,deltas没有合并到main中[FriSep2515:34:42.5492015][2312]WARNI

windows - Jenkins 管道 : Get value from ini file

我想从INI文件中获取一个值(版本构建号),并根据这个值设置Jenkins作业的描述。我还没有找到INI文件Jenkins插件,所以我想我会使用PowerShell或批处理脚本来解释INI文件。但是,将此值引入Jenkins管道作业的最佳方法是什么?将其存储在环境变量中?将其写入纯文本文件?使用Jenkins做这样的事情有什么约定吗? 最佳答案 您可以使用readFile管道步骤:https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#code-readfile-cod

c - 我用什么来替代管道的 GetFileSize()?

见标题。在命名管道的客户端,我想确定要从命名管道读取的内容的大小,以便为缓冲区分配内存以获取内容。MSDNhelp说:YoucannotusetheGetFileSizefunctionwithahandleofanonseekingdevicesuchasapipeoracommunicationsdevice.TodeterminethefiletypeforhFile,usetheGetFileTypefunction.嗯。好的。但是如果我不能使用GetFileSize要确定从管道可读的数据量,我应该使用什么?目前,我做length=GetFileSize(pipehandle,

c++ - 两个控制台应用程序之间的管道?

如何在不同控制台窗口中运行的两个独立控制台应用程序之间进行管道连接?例如我想做类似的事情:ffmpeg-i0.flv-vcodecmpeg4-fasf-scif-|vlc-但是,我想从两个单独的窗口执行此操作,但这是行不通的,我想这是因为标准输出是cmd窗口的本地输出。命令窗口1:ffmpeg-i0.flv-vcodecmpeg4-fasf-scif-命令窗口2:vlc-有没有办法以编程方式实现这一点?|在幕后到底做了什么? 最佳答案 cmd所做的是将第一个进程的标准输出连接到第二个进程的标准输入,您可以通过编程方式完成此操作。有关

windows - 带括号和管道的多行 Windows shell 命令

我正尝试在Windows上使用OpenSSL加密某些表单数据,但我很难弄清楚什么是正确的语法。使用以下命令,OpenSSL返回一条PKCS7消息,但仍然给我一条&wasunexpectedatthistime消息。(opensslsmime-sign-signerclient-public.pem-inkeyclient-private.pem-outformder-nodetach-binary^formkey1=formvalue1^formkey2=formvalue2^formkey3=formvalue3^^^)|opensslsmime-encrypt-des3-binar

windows - 如何将括号发送到由括号包围的管道中?

在Windows.bat文件中,我可以像这样使用重定向:(echoconnect/assysdbaechoselectsysdatefromdual;echoexit)|sqlplus-s/nolog它会运行(显然这个例子什么都不做)。我如何将括号传递到这种格式的查询中,例如:(echoconnect/assysdbaechoselecttrunc(sysdate)fromdual;echoexit)|sqlplus-s/nolog没有炸掉管道? 最佳答案 您需要在右括号前添加三个脱字符。(echoconnect/assysdbae