2
我正在通过套接字发送wget命令到远程服务器。 这里是客户代码:在Python中通过套接字发送的同步wget命令
import socket
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('192.168.1.16',12345))
s.send('wget http://url/file1')
print "file 1 OK"
s.send('wget http://url/file2')
print "file 2 OK"
s.send('wget http://url/file3')
print "file 3 OK"
s.close()
在服务器,代码如下:
#!/usr/bin/env python
import socket
import subprocess
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 12345))
s.listen(1)
conn, addr = s.accept()
while True:
data = conn.recv(1024)
cmd = ['/bin/sh', '-c', data]
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE).wait()
我有2个问题:发送到服务器
- 说明被分组。服务器没有完成3个指令,而是只接收1个连接3个指令的文件
- “文件n正常”在服务器未完成时立即显示。
我应该做些什么修改以确保在每个文件的下载完成后显示“OK”? 非常感谢您的帮助。
为什么wget的,而不是纯Python? – akira