呆鸟的Python数据分析python自学

python----基于TCP+subprocess远程连接

2020-04-21  本文已影响0人  幼姿沫

一 *  远程执行命令的程序

1.subprocess  模块


shell=True 告诉系统把次命令作为系统命令执行

stdout = subprocess.PIPE  输出

stderr = subprocess.PIPE 错误信息

win系统编码  gbk

内存  unicode  传输时转化为utf-8   pycharm   utf-8

2.TCP介绍


基于TCP是不允许发空消息的会发生粘包    

回车时不发任何消息就会发生卡住,如果是空格的话会发生no

解决办法就是直接限制

TCP命令程序的创建

3.重写socket


2.#重写socket之后的udp server端

tu_server.py

sk=Mysocket()

sk.bind(("127.0.0.1",9090))

while True:

msg,addr=sk.myrecv(1024)

print(msg,addr)

s=input(">>>")

sk.mysent(s,addr)

sk.close()

3.#重写socket之后的udp client客户端

tu_client.py

sk=Mysocket()

while True:

s=input(">>>")

sk.mysent(s,("127.0.0.1",9090))

msg,addr=sk.myrecv(1024)

print(msg,addr)

sk.close()

4.远程操控系统命令


import os

import subprocess

#os系统模块里面的方法popen可以接收执行系统命令dir展示目录calc计算机 mspaint画图工具

obj=os.popen("mspaint")

print(obj.read())

5.#subprocess模块远程执行命令相当于os.popen但是比较强大可以调用系统命令


#将shell设置为True告诉系统把subprocess.Popen命令作为系统命令windows来执行

"""

stdout=subprocess.PIPE输出信息

stderr=subprocess.PIPE输出错误信息

PIPE管道

"""

以下是代码演示:

s=subprocess.Popen("dir",shell=True,

                stdout=subprocess.PIPE,

                stderr=subprocess.PIPE

)

print("stdout1*", s.stdout.read().decode("gbk"))

print("stderr*" , s.stderr.read().decode("gbk"))

print("stdout2*", s.stdout.read().decode("gbk"))

7.基于TCP的socket和subprocess执行远程系统命令


上一篇 下一篇

猜你喜欢

热点阅读