在python的Socket編程之服務(wù)端代碼(linux)
提問人:楊紫紅發(fā)布時(shí)間:2020-11-24
#!/usr/bin/python
import socket #socket模塊
import commands #執(zhí)行系統(tǒng)命令模塊
HOST='10.0.0.245'
PORT=50007
s= socket.socket(socket.AF_INET,socket.SOCK_STREAM) #定義socket類型,網(wǎng)絡(luò)通信,TCP
s.bind((HOST,PORT)) #套接字綁定的IP與端口
s.listen(1) #開始TCP監(jiān)聽
while 1:
conn,addr=s.accept() #接受TCP連接,并返回新的套接字與IP地址
print'Connected by',addr #輸出客戶端的IP地址
while 1:
data=conn.recv(1024) #把接收的數(shù)據(jù)實(shí)例化
cmd_status,cmd_result=commands.getstatusoutput(data) #commands.getstatusoutput執(zhí)行系統(tǒng)命令(即shell命令),返回兩個(gè)結(jié)果,第一個(gè)是狀態(tài),成功則為0,第二個(gè)是執(zhí)行成功或失敗的輸出信息
if len(cmd_result.strip()) ==0: #如果輸出結(jié)果長度為0,則告訴客戶端完成。此用法針對(duì)于創(chuàng)建文件或目錄,創(chuàng)建成功不會(huì)有輸出信息
conn.sendall('Done.')
else:
conn.sendall(cmd_result) #否則就把結(jié)果發(fā)給對(duì)端(即客戶端)
conn.close() #關(guān)閉連接
import socket #socket模塊
import commands #執(zhí)行系統(tǒng)命令模塊
HOST='10.0.0.245'
PORT=50007
s= socket.socket(socket.AF_INET,socket.SOCK_STREAM) #定義socket類型,網(wǎng)絡(luò)通信,TCP
s.bind((HOST,PORT)) #套接字綁定的IP與端口
s.listen(1) #開始TCP監(jiān)聽
while 1:
conn,addr=s.accept() #接受TCP連接,并返回新的套接字與IP地址
print'Connected by',addr #輸出客戶端的IP地址
while 1:
data=conn.recv(1024) #把接收的數(shù)據(jù)實(shí)例化
cmd_status,cmd_result=commands.getstatusoutput(data) #commands.getstatusoutput執(zhí)行系統(tǒng)命令(即shell命令),返回兩個(gè)結(jié)果,第一個(gè)是狀態(tài),成功則為0,第二個(gè)是執(zhí)行成功或失敗的輸出信息
if len(cmd_result.strip()) ==0: #如果輸出結(jié)果長度為0,則告訴客戶端完成。此用法針對(duì)于創(chuàng)建文件或目錄,創(chuàng)建成功不會(huì)有輸出信息
conn.sendall('Done.')
else:
conn.sendall(cmd_result) #否則就把結(jié)果發(fā)給對(duì)端(即客戶端)
conn.close() #關(guān)閉連接
繼續(xù)查找其他問題的答案?
相關(guān)視頻回答
點(diǎn)擊加載更多評(píng)論>>