所以现在我有一个简单的FTP系统来传输文件。
但我对如何从客户端计算机上运行服务器计算机上的命令感到困惑。
如何从客户端计算机上打开服务器计算机上的终端以使用ls或mkdir或cd等命令?或者我可以直接从套接字编程
执行此操作答案 0 :(得分:0)
您可以使用python模块argc
。 (https://pymotw.com/2/subprocess/)
例如,假设您使用套接字设置了客户端/服务器“对话框”,您可以执行以下操作:
<强> client.py 强>
subprocess
您可以将上面的代码放在一个循环中,该循环只有在您输入“退出”或其他内容时才会中断,以便不断发送和接收命令。您在服务器端也需要一个循环或类似的东西,以便不断接受并返回命令的输出。你也可以使用线程。
<强> server.py 强>
# assume 's' is your socket already connected to the server
# prompt the user for a command to send
cmd = raw_input("user > ")
s.send(cmd) # send your command to the server
# let's say you input 'ls -la'
注意:我认为较新的版本是# on the server side do this
# s is again your socket bound to a port
# but we're on the server side this time!
from subprocess import Popen, PIPE
cmd = s.recv(1024)
# cmd now has 'ls -la' assigned to it
# parse it a bit
cmd = cmd.split() # to get ['ls', '-la']
# now we execute the command on the server with subprocess
p = Popen(cmd, stdout=PIPE)
result = p.communicate()
# result is, in this case, the listing of files in the current directory
s.send(result[0]) # result[0] should be a str
# you now make sure to receive your result on the client
,但所有方法都是我记得的。