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