位置:首頁 > 軟件操作教程 > 編程開發(fā) > Python > 問題詳情

在python的Socket編程之服務端代碼(linux)

提問人:楊紫紅發(fā)布時間: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ù)實例化
               cmd_status,cmd_result=commands.getstatusoutput(data)   #commands.getstatusoutput執(zhí)行系統(tǒng)命令(即shell命令),返回兩個結(jié)果,第一個是狀態(tài),成功則為0,第二個是執(zhí)行成功或失敗的輸出信息
                if len(cmd_result.strip()) ==0:   #如果輸出結(jié)果長度為0,則告訴客戶端完成。此用法針對于創(chuàng)建文件或目錄,創(chuàng)建成功不會有輸出信息
                        conn.sendall('Done.')
                else:
                       conn.sendall(cmd_result)   #否則就把結(jié)果發(fā)給對端(即客戶端)
conn.close()     #關(guān)閉連接

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(0)
返回頂部