服務端:
#!/usr/bin/python3客戶端:import socket #socket模組
import subprocess #執行系統命令模組
host='127.0.0.1'
port=50007
s= socket.socket(socket.af_inet,socket.sock_stream) #定義socket型別,網路通訊,tcp
s.bind((host,port)) #套接字繫結的ip與埠
s.listen(1) #開始tcp監聽
while 1:
try:
conn,addr=s.accept() #接受tcp連線,並返回新的套接字與ip位址
print('connected by',addr) #輸出客戶端的ip位址
while 1:
data=conn.recv(1024) #把接收的資料例項化
cmd_status,cmd_result=subprocess.getstatusoutput(data) #subprocess.getstatusoutput執行系統命令(即shell命令),返回兩個結果,第乙個是狀態,成功則為0,第二個是執行成功或失敗的輸出資訊
if len(cmd_result.strip()) ==0: #如果輸出結果長度為0,則告訴客戶端完成。此用法針對於建立檔案或目錄,建立成功不會有輸出資訊
conn.sendall('done.'.encode())
else:
conn.sendall(cmd_result.encode()) #否則就把結果發給對端(即客戶端)
except brokenpipeerror:
continue
except keyboardinterrupt:
break
try:
conn.close() #關閉連線
except nameerror: #忽略未連線退出時造成的conn未定義錯誤
print('\n')
pass
#!/usr/bin/python3import socket
host='127.0.0.1'
port=50007
s=socket.socket(socket.af_inet,socket.sock_stream) #定義socket型別,網路通訊,tcp
s.connect((host,port)) #要連線的ip與埠
try:
while 1:
cmd = input("please input cmd:").encode() #與人互動,輸入命令
s.sendall(cmd) #把命令傳送給對端
data = s.recv(1024) #把接收的資料定義為變數
print(data.decode()) #輸出變數
except keyboardinterrupt:
print('\n')
s.close() #關閉連線
利用socket程式設計實現簡單的web伺服器
本博文主要利用socket 程式設計,實現簡單的web伺服器,客戶端能正常訪問這個伺服器 接收資訊,返回響應 file path self.parse request new client socket,ip port if file path file path index.html respon...
socket實驗 簡單web伺服器
開始補網路的欠賬 這個也是 計算機網路 自頂向下方法 的實驗二,後面還有多執行緒伺服器。這個伺服器程式採取的傳輸層協議是tcp,tcp和udp的區別就不贅述了,在socket程式設計上也有區別體現。區域網ip的獲取方法 終端命令 ifconfig grep inet serverport 12000...
socket 簡單實現HTTP伺服器
1 coding utf 8 2 time 2019 07 17 1 393 file 網路socket實現http伺服器.py4 software pycharm56 import socket 7importre8 910defserver conn conn,file name 11 1.響應...