# server 下發命令
# client 執行命令
# ssh協議
# import os
# ret = os.popen('ls').read()
# print(ret)
import subprocess
# 內建模組 和os模組的功能有相似之處
# 能執行作業系統的命令的功能
ret = subprocess.popen('dir', # 要執行的命令
shell=true, # 表示要執行的是一條系統命令
stdout=subprocess.pipe, # 儲存執行結果的正常資訊
stderr=subprocess.pipe) # 儲存執行結果的錯誤資訊
print('stdout : ',ret.stdout.read().decode('gbk'))
print('stderr : ',ret.stderr.read().decode('gbk'))
client-udp:
import socket
import subprocess
sk = socket.socket(type=socket.sock_dgram)
sk.sendto(b'111',('127.0.0.1',8090))
while true:
cmd = sk.recvfrom(1024)[0].decode('utf-8')
if cmd == 'q': break
res = subprocess.popen(cmd,shell=true,
stdout=subprocess.pipe,
stderr=subprocess.pipe)
sk.sendto(res.stdout.read()*100,('127.0.0.1',8090))
sk.sendto(res.stderr.read(),('127.0.0.1',8090))
sk.close()
server-udp:
import socket
sk = socket.socket(type=socket.sock_dgram)
sk.bind(('127.0.0.1',8090))
msg,addr = sk.recvfrom(1024)
while true:
cmd = input('cmd : ')
if cmd == 'q':
sk.sendto(cmd.encode('utf-8'),addr)
break
sk.sendto(cmd.encode('utf-8'),addr)
print('stdout : ',sk.recvfrom(2048)[0].decode('gbk'))
print('stderr : ',sk.recvfrom(2048)[0].decode('gbk'))
sk.close()
client:
import socket
import subprocess
sk = socket.socket()
sk.connect(('127.0.0.1',8090))
while true:
cmd = sk.recv(1024).decode('utf-8')
if cmd == 'q': break
res = subprocess.popen(cmd,shell=true,
stdout=subprocess.pipe,
stderr=subprocess.pipe)
sk.send(res.stdout.read())
sk.send(res.stderr.read())
sk.close()
server:
import socket
sk = socket.socket()
sk.bind(('127.0.0.1',8090))
sk.listen()
conn,addr = sk.accept()
while true:
cmd = input('cmd : ')
if cmd == 'q':
conn.send(cmd.encode('utf-8'))
break
conn.send(cmd.encode('utf-8'))
print('stdout : ',conn.recv(1024).decode('gbk'))
conn.close()
sk.close()
python網路程式設計(十)
在多路復用的模型中,比較常用的有select模型和epoll模型。這兩個都是系統介面,由作業系統提供。當然,python的select模組進行了更高階的封裝。網路通訊被unix系統抽象為檔案的讀寫,通常是乙個裝置,由裝置驅動程式提供,驅動可以知道自身的資料是否可用。支援阻塞操作的裝置驅動通常會實現一...
python網路程式設計基礎
客戶 伺服器架構 伺服器 是乙個軟體或硬體,用於提供客戶需要的 服務 伺服器存在的唯一目的就是等待客戶的請求,給這些客戶服務,然後再等待其他的請求.常見的服務型別 硬體的客戶 伺服器架構 印表機,檔案伺服器 軟體客戶 伺服器架構 web伺服器,資料庫伺服器,視窗伺服器 gui 套接字 用於程序間通訊...
python 網路程式設計基礎
python實在是太方便,太易用了,三方庫的支援又全,語法又簡單,對開發人員來說,實在是居家旅行,x的必備利器。週末研究了下python的網路支援,做一下記錄,以備隨後翻閱。python支援bsd的socket進行網路程式設計,其api跟c中的大同小異,先看看tcp方式的,說到網路程式設計,肯定會設...