以下代码不能在Windows上运行,因为它以不同于Linux的方式处理sys.stdin。我想知道是否有一个语义解决方法,我不能只检查sys.stdin是否有数据,但是如果数据到达套接字中的数据之前。基本上无论操作系统如何,都会在“用户输入”上产生相同的结果。
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect("localhost",12345)
while true:
inputs = [client,sys.stdin]
read_list,notUsed, notUsed2 = select.select(inputs,[],[])
for connection in read_list:
if connection == client:
user_input = connection.recv(4096)
else:
user_input = sys.stdin.readline()