python网络编程
subprocess模块
区别:subprocess模块与os.system(cmd)或os.popen(cmd)模块的区别是有返回值,会将报错信息接收
语法:ret_obj = subprocess(cmd, # 预在dos中执行的系统命令
shell=True, # 表示在Windows控制台
stdout=subprocess.PIPE, # 标准输出管道
stderr=subprocess.PIPE) # 标准错误管道
结果:执行完成之后,返回的是一个对象
对结果的读:msg = ret_obj.stdout.read() 得到的是一个bytes类型,因管道的机制是只读一次,读完后内存中就没有了,故需要用变量提前保存后,再发送
可视化需解码:msg = msg.decode('gbk') 因Windows默认位gbk编码
=====》
通过远程让主机执行相关命名,并将结果返回:

1 import socket 2 import subprocess 3 4 sk = socket.socket() 5 sk.bind(('127.0.0.1', 9999)) 6 sk.listen() 7 conn, add = sk.accept() 8 9 while 1: 10 msg_cmd = conn.recv(1024) 11 print(msg_cmd) 12 ret = subprocess.Popen(msg_cmd.decode('utf-8'), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 13 r = ret.stdout.read() 14 print(r.decode('gbk')) 15 conn.send(r) # windows 默认gbk,返回的是gbk字符串,故需解码

1 import socket 2 3 sk = socket.socket() 4 sk.connect(('127.0.0.1', 9999)) 5 6 while 1: 7 cmd = input('>>>>:') 8 sk.send(cmd.encode('utf-8')) 9 msg_r = sk.recv(2048) 10 print(msg_r.decode('gbk')) 11 sk.close()
人生苦短,我用python!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具