Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python3中管道、分割和合并各种流_Python_Sockets_Stream_Subprocess - Fatal编程技术网

如何在python3中管道、分割和合并各种流

如何在python3中管道、分割和合并各种流,python,sockets,stream,subprocess,Python,Sockets,Stream,Subprocess,我有3个要连接的流: 来自套接字输入、输出的TCP流 标准输入,标准输出,标准输出 子流程流p.stdin、p.stderr、p.stdout 这就是我想将它们连接在一起的方式: p是进程,TCP是套接字连接 TCP.out->stdin,p.stdin p、 标准输出->标准输出,TCP.in p、 stderr->stderr 我一直在翻阅文档,在谷歌上搜索,但是没有结果。你能告诉我正确的方向吗?我该怎么做 我知道我可以将每个流作为文件描述符来处理,并对其进行读/写。。。但是它感觉很难看,而

我有3个要连接的流:

来自套接字输入、输出的TCP流 标准输入,标准输出,标准输出 子流程流p.stdin、p.stderr、p.stdout 这就是我想将它们连接在一起的方式:

p是进程,TCP是套接字连接

TCP.out->stdin,p.stdin p、 标准输出->标准输出,TCP.in p、 stderr->stderr 我一直在翻阅文档,在谷歌上搜索,但是没有结果。你能告诉我正确的方向吗?我该怎么做


我知道我可以将每个流作为文件描述符来处理,并对其进行读/写。。。但是它感觉很难看,而且存在更好的解决方案,或者已经支持,或者一些外部库。

从套接字和运行进程的角度来看,TCP.in->stdin是什么意思?另外,p.stdin->stdout没有任何意义-为什么你想写一些东西给孩子,只是为了通过父母的stdout来回应它,而不是直接写给stdout?这是一个我注意到我的错误并改正了接线方案的例子。左边是我想要复制/管道到一个或多个输入流的输出流。TCP.out->stdin也没有意义。为什么您需要从进程本身中写入自己的stdin?是否要捕获套接字输出以进行某些处理,并像tee实用程序一样将其传递给子进程?给你。这里是。修复你的图表:左边的对象应该是可读的。读、.recv方法,右边的对象应该是可写的。写,发送。说明对象的.fileno是否返回有效的文件描述符。您的操作系统是什么?select在系统上的管道上工作?