如何使用python tcp socket运行交互式命令?

时间:2018-02-03 18:07:27

标签: python python-3.x sockets tcp python-sockets

说我是否想运行vim ./foo.txt我希望能够使用我的tcp套接字客户端编辑foo.txt。

但每当我尝试这样做时,它会在服务器上执行,但不会在我的客户端上执行。

我不想使用paramiko或任何其他类似ssh的模块,我想继续使用python套接字模块。

我正在使用python 3。

1 个答案:

答案 0 :(得分:0)

我建议使用子进程模块在服务器(文件所在的位置)上打开命令。这种方式可以将信息放入其中。您可以让客户端发送一条消息,告诉服务器将x发送到子进程。

一个例子是这样的:

import subprocess

# Assuming the variable x is that the socket is sending the server...
editing_foo = subprocess.Popen(['vim', './foo.txt'], stdin=PIPE)  # stdin must be PIPE to communicate
editing_foo.communicate(input=x)  # input is a string which is sent to the subprocess
# x could have been 'i' or ':q!' for example