Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.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
Python子流程:流式输入和流式输出_Python_Subprocess - Fatal编程技术网

Python子流程:流式输入和流式输出

Python子流程:流式输入和流式输出,python,subprocess,Python,Subprocess,我有一个用Python编写的服务器,它基本上接受来自客户机的传入连接,并将从客户机接收到的数据反馈到子流程(每个连接一个实例),然后子流程处理数据并将结果返回给服务器,以便它可以将数据发送回客户机 问题是数据正在流入,我需要能够在看不到EOF的情况下执行多个读/写操作。到目前为止,我还无法想出一个解决方案,使我能够做到这一点,而不会让我的服务器程序在读取时被阻止。有什么建议吗?谢谢。听起来您必须建立UDP服务器和客户端。您可以使用(在Unix和Windows上提供) 调用select.selec

我有一个用Python编写的服务器,它基本上接受来自客户机的传入连接,并将从客户机接收到的数据反馈到子流程(每个连接一个实例),然后子流程处理数据并将结果返回给服务器,以便它可以将数据发送回客户机


问题是数据正在流入,我需要能够在看不到EOF的情况下执行多个读/写操作。到目前为止,我还无法想出一个解决方案,使我能够做到这一点,而不会让我的服务器程序在读取时被阻止。有什么建议吗?谢谢。

听起来您必须建立UDP服务器和客户端。

您可以使用(在Unix和Windows上提供)

调用
select.select
将被阻止,直到
client
socket或
proc.stdout
准备好读取为止

rlist
保存准备读取的
[client.stdin,proc.stdout]
的子集

可以找到它的用法示例(尽管针对不同的问题)

while True:
    rlist, wlist, xlist = select.select([client, proc.stdout], [], [])