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