微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python可以从Windows Powershell namedpipe中读取吗?

我在Windows Powershell中创build了以下命名pipe道。

# .NET 3.5 is required to use the System.IO.Pipes namespace [reflection.Assembly]::LoadWithPartialName("system.core") | Out-Null $pipeName = "pipename" $pipeDir = [System.IO.Pipes.PipeDirection]::InOut $pipe = New-Object system.IO.Pipes.NamedPipeServerStream( $pipeName,$pipeDir )

现在,我需要的是从上面创build的命名pipe道读取一些Python代码片段。 Python能做到吗?

提前致谢 !

testing网站与IE7

全局或本地线性地址空间在Linux?

Python Pexpect产卵物体Flush

将Azure网站迁移到Azure云服务

在Apache上运行Ruby应用程序

Bashterminalredirect到另一个terminal

Linux如何保护内存?

创build命名pipe道时,获取GLE = 5(拒绝访问)错误

Windows 10是否保护您访问另一个程序正在使用的内存?

pipe道到unistd.h阅读段错误

礼貌: http : //jonathonreinhart.blogspot.com/2012/12/named-pipes-between-c-and-python.html

这是C#代码

using System; using System.IO; using System.IO.Pipes; using System.Text; class Pipeserver { static void Main() { var server = new NamedPipeserverStream("NPtest"); Console.WriteLine("Waiting for connection..."); server.WaitForConnection(); Console.WriteLine("Connected."); var br = new BinaryReader(server); var bw = new BinaryWriter(server); while (true) { try { var len = (int)br.ReadUInt32(); // Read string length var str = new string(br.ReadChars(len)); // Read string Console.WriteLine("Read: "{0}"",str); //str = new string(str.Reverse().ToArray()); // Aravind's edit: since Reverse() is not working,might require some import. Felt it as irrelevant var buf = Encoding.ASCII.GetBytes(str); // Get ASCII byte array bw.Write((uint)buf.Length); // Write string length bw.Write(buf); // Write string Console.WriteLine("Wrote: "{0}"",str); } catch (EndOfStreamException) { break; // When client disconnects } } } }

这里是Python代码

import time import struct f = open(r'\.pipeNPtest','r+b',0) i = 1 while True: s = 'Message[{0}]'.format(i) i += 1 f.write(struct.pack('I',len(s)) + s) # Write str length and str f.seek(0) # EDIT: This is also necessary print 'Wrote:',s n = struct.unpack('I',f.read(4))[0] # Read str length s = f.read(n) # Read str f.seek(0) # Important!!! print 'Read:',s time.sleep(2)

将C#代码转换为.ps1文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐