日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

PYTHON——TCPUDP:Socket实现远程执行命令

發(fā)布時(shí)間:2025/3/20 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PYTHON——TCPUDP:Socket实现远程执行命令 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  本文介紹客戶端client輸入dos指令,并將dos指令發(fā)送給服務(wù)端server,服務(wù)端接收到指令,通過(guò)調(diào)用subprocess模塊的Popen方法實(shí)例化一個(gè)子進(jìn)程對(duì)象,子進(jìn)程對(duì)象執(zhí)行完指令后,將結(jié)果并通過(guò)管道方式回送到主進(jìn)程。其中,subprocess的用法,參見(jiàn):Python subprocess模塊解析。

一、通過(guò)發(fā)送字符串長(zhǎng)度的方法:

1、服務(wù)端程序:cmd_server.py:

import socket import subprocess
import time
# subprocess.Popen() 重要方法.# 學(xué)socket的秘籍:一收一發(fā) sk = socket.socket() host='' #空表示本機(jī),等效于127.0.0.1和localhost port=8000 address = (host,port) sk.bind(address) sk.listen(3) print('waiting......') # conn,addr = sk.accept() #這個(gè)conn是客戶端的socket對(duì)象。非常重要。while True:conn, addr = sk.accept() # 這個(gè)conn是客戶端的socket對(duì)象。非常重要。print(addr)while True:try:data = conn.recv(1024)except Exception:breakif not data: #客戶端退出時(shí),最后還是會(huì)給服務(wù)端發(fā)送一個(gè)空串。即data為空。breakprint('--------->',str(data,'utf8'))obj=subprocess.Popen(str(data,'utf8'),shell=True,stdout=subprocess.PIPE)cmd_result = obj.stdout.read() #bytes類型result_len = bytes(str(len(cmd_result)),'utf8')conn.sendall(result_len) #必須先傳一個(gè)長(zhǎng)度過(guò)去
# time.sleep(1) #兩個(gè)發(fā)送指令send或sendall連在一起,會(huì)出現(xiàn)粘包現(xiàn)象。解決粘包現(xiàn)象,就是加入sleep
     conn.recv(1024) #通過(guò)一收一發(fā)方式,多引入一個(gè)短收,解決粘包問(wèn)題。
conn.sendall(cmd_result) conn.close()

2、客戶端程序:cmd_client.py:

import socketsk=socket.socket() address = ('127.0.0.1',8000) sk.connect(address)while True:inp = input('>>>')if inp=='exit':breaksk.send(bytes(inp,'utf8'))result_len = int(str(sk.recv(1024),'utf8'))
sk.send(bytes('ok')) #用于解決粘包現(xiàn)象
print(result_len)data=bytes() #初始化一個(gè)bytes類型的變量,就像初始化sum=0一樣while len(data)!=result_len:temp = sk.recv(1024)data += tempprint(str(data,'gbk'))sk.close()

二、更好的方法:

1、服務(wù)端程序:cmd_server.py:

import socket import subprocess# subprocess.Popen() 重要方法. # 學(xué)socket的秘籍:一收一發(fā) sk = socket.socket() host='' #空表示本機(jī),等效于127.0.0.1和localhost port=8000 address = (host,port) sk.bind(address) sk.listen(3) print('waiting......') # conn,addr = sk.accept() #這個(gè)conn是客戶端的socket對(duì)象。非常重要。while True:conn, addr = sk.accept() # 這個(gè)conn是客戶端的socket對(duì)象。非常重要。print(addr)while True:try:data = conn.recv(1024)except Exception:breakif not data: #客戶端退出時(shí),最后還是會(huì)給服務(wù)端發(fā)送一個(gè)空串。即data為空。breakprint('--------->',str(data,'utf8'))obj=subprocess.Popen(str(data,'utf8'),shell=True,stdout=subprocess.PIPE)cmd_result = obj.stdout.read() #bytes類型
# result_len = bytes(str(len(cmd_result)),'utf8')
# conn.sendall(result_len) #必須先傳一個(gè)長(zhǎng)度過(guò)去
# conn.recv(1024) #兩個(gè)發(fā)送指令send或sendall連在一起,可能會(huì)出現(xiàn)粘包現(xiàn)象。解決粘包現(xiàn)象,就是加入臨時(shí)阻塞
conn.sendall(cmd_result) conn.close()

?

2、客戶端程序:cmd_client.py

import socketsk=socket.socket() address = ('127.0.0.1',8000) sk.connect(address) buffersize=1024 while True:inp = input('>>>')if inp=='exit':breaksk.send(bytes(inp,'utf8'))fullDataBtyes = b'' #初始化一個(gè)bytes類型的變量,等效于fullDataBytes=bytes()。while True:data = sk.recv(buffersize)fullDataBtyes += dataif len(data)<buffersize:break;print(str(fullDataBtyes,'gbk'))# result_len = int(str(sk.recv(1024),'utf8'))# sk.send(bytes('ok')) #解決粘包# print(result_len)# data=bytes() #初始化一個(gè)bytes類型的變量,就像初始化sum=0一樣# while len(data)!=result_len:# temp = sk.recv(1024)# data += temp# print(str(data,'gbk')) sk.close()

?

參考:

1、‘’老男孩‘’python全棧開(kāi)發(fā),袁老師講解

2、參考《python從菜鳥(niǎo)到高手》,作者:李寧

轉(zhuǎn)載于:https://www.cnblogs.com/chenhaiming/p/9886288.html

總結(jié)

以上是生活随笔為你收集整理的PYTHON——TCPUDP:Socket实现远程执行命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费无码毛片一区二区app | 精品久久中文 | 欧美熟妇精品黑人巨大一二三区 | 欧美韩一区二区 | 快色污 | 人妻少妇精品一区二区三区 | 91久久久久久 | 婷婷免费视频 | 黄色网页在线播放 | 一本大道久久久久精品嫩草 | 国产精品人八做人人女人a级刘 | a在线一区| 好大好舒服视频 | 国产极品久久久 | 美女高潮黄又色高清视频免费 | 东京热一区二区三区四区 | 中文字幕人妻一区二区 | 亚洲人xxx | av不卡在线播放 | 色姑娘综合网 | 午夜黄色录像 | 另类视频在线观看+1080p | 久久久久久久蜜桃 | www.黄色片| 成人av高清 | 国产日韩av一区二区 | 性久久久久久久久久久久 | 一本色道久久综合亚洲精品酒店 | 伊人久久九 | 中文字幕黑人 | 亚洲影视在线 | 免费网站av | 亚洲h动漫 | 亚瑟av在线 | zjzjzjzjzj亚洲女人 | 深夜视频在线观看免费 | 亚洲小视频 | 在线中文字幕一区 | 小sao货cao死你 | 九九久久视频 | 国产三级精品在线观看 | 亚洲不卡av一区二区 | 伊人久久香 | 丰满人妻一区二区三区53视频 | 亚洲男人在线天堂 | 国内精品久久久久久 | 成人a级大片 | 午夜精品久久久久久99热 | 公侵犯人妻一区二区三区 | 黄色激情av | 波多野结衣www | 美女一区| 玉足调教丨vk24分钟 | 亚洲欧洲国产视频 | 日本一区视频在线播放 | 日本国产在线 | 中文字幕视频网 | 韩国一级淫一片免费放 | 丰满少妇一区二区三区专区 | 久久久久久久久久久久久久久久久久久久 | 国产在线免费视频 | 成人毛片大全 | 久久亚洲无码视频 | 在线黄色免费 | 欧美在线v | 国产午夜精品福利视频 | 国产天堂在线观看 | 在线观看免费视频国产 | 免费级毛片 | 欧美国产二区 | 亚洲毛片一区二区 | 少妇高潮露脸国语对白 | 禁漫天堂在线 | 草在线 | juliaann办公室丝袜大战 | 日本少妇性高潮 | 亚洲精品国产精品国自产网站按摩 | 日日夜夜免费精品视频 | 欧美拍拍视频 | 久青草资源福利视频 | 国产精品第12页 | 午夜视频免费看 | 8x国产一区二区三区精品推荐 | 欧美乱妇日本无乱码特黄大片 | 爱情岛av永久入口 | 男女毛片视频 | 国产a三级 | 亚洲一级影院 | 奇米第四色首页 | 超薄肉色丝袜一区二区 | 91视频成人 | 国产夫妻自拍小视频 | 中文字幕av亚洲精品一部二部 | 天天av天天翘 | 2019年中文字幕 | 一本到av | 一区二区三区视频在线观看免费 | 亚洲精品码 | 免费一二三区 |