目錄python從入門到放棄完整教程目錄:
from socket import *
import subprocess
server = socket(af_inet, sock_stream)
server.bind(('127.0.0.1', 8000))
server.listen(5)
print('start...')
while true:
conn, client_addr = server.accept()
while true:
print('from client:', client_addr)
cmd = conn.recv(1024)
if len(cmd) == 0: break
print('cmd:', cmd)
obj = subprocess.popen(cmd.decode('utf8'), # 輸入的cmd命令
shell=true, # 通過shell執行
stderr=subprocess.pipe, # 把錯誤輸出放入管道,以便列印
stdout=subprocess.pipe) # 把正確輸出放入管道,以便列印
stdout = obj.stdout.read() # 列印正確輸出
stderr = obj.stderr.read() # 列印錯誤輸出
conn.send(stdout)
conn.send(stderr)
conn.close()
server.close()
import socket
client = socket.socket(socket.af_inet, socket.sock_stream)
client.connect(('127.0.0.1', 8000))
while true:
data = input('please enter your data')
client.send(data.encode('utf8'))
data = client.recv(1024)
print('from server:', data)
client.close()
輸入dir
命令,由於服務端傳送位元組少於1024位元組,客戶端可以接受。
輸入tasklist
命令,由於服務端傳送位元組多於1024位元組,客戶端只接受部分資料,並且當你再次輸入dir
命令的時候,客戶端會接收dir
命令的結果,但是會列印上一次的剩餘未傳送完的資料,這就是粘包問題。
模擬ssh遠端執行命令
from socket import import subprocess server socket af inet,sock stream server.bind 127.0.0.1 8000 server.listen 5 print start.while true conn,client a...
ssh遠端執行命令
使用ssh不僅可以登入到遠端的linux主機,還可以執行命令。如果是要登入到遠端linux主機,那麼使用下面的命令 ssh username remoteip example ssh hduser 192.168.0.1 這個將開啟乙個登入到遠端主機192.168.0.1的login shell如果...
ssh遠端執行命令
1.遠端執行普通命令 ssh username ip cmd1 cmd2 多條命令間用分號分割 ssh l username 192.168.1.1等同於 ssh username 192.168.1.1 2.遠端執行需要互動的命令 例如top命令,直接執行ssh username ip top 會...