import subprocess

subprocess.Popen('dir',shell=True) shell是命令解释器

stdout  标准输出

stdin   标准输入

stderr  标准错误输出

客户端断开链接,服务端要加异常处理,注意不同平台式不一样的,有的是客户端断开链接,服务端不再阻塞,接收一直为空

对于window用try。。。except,其它平台可用if not。。。:break

异常处理机制

window使用:

客户端正常断开,不会阻塞,服务端接收一直为空,用if来处理

用异常处理来解决客户端非正常关闭情况下会出现的问题,try。。。except

import socket
import subprocess
ip_port=('192.168.1.6',8002)
back_log=5
buffer_size=1024
tcp_server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_server.bind(ip_port)
tcp_server.listen(back_log)
print('------>')
while True:conn,addr=tcp_server.accept()print(conn)print(addr)while True:try:cmd=conn.recv(buffer_size)if not cmd:breakprint('来自客户端的消息',cmd.decode('utf-8'))res=subprocess.Popen(cmd.decode('utf-8'),shell=True,stdout=subprocess.PIPE,stdin=subprocess.PIPE,stderr=subprocess.PIPE)err=res.stderr.read()if err:cmd_res=errelse:cmd_res=res.stdout.read()conn.send(cmd_res)except Exception:breakconn.close()
tcp_server.close()

tcp_server

import socket
ip_port=('192.168.1.6',8002)
buffer_size=1024
tcp_client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_client.connect(ip_port)
while True:cmd=input('>>:').strip()if not cmd: continueif cmd=='quit':breaktcp_client.send(cmd.encode('utf-8'))print(123)cmd_res=tcp_client.recv(buffer_size)print('来自服务端的消息',cmd_res.decode('gbk'))
tcp_client.close()

tcp_client

转载于:https://www.cnblogs.com/jintian/p/10970909.html

基于tcp实现远程执行命令相关推荐

  1. Python之网络编程(基于tcp实现远程执行命令)

    文章目录 实现目标 服务端分析 客户端分析 远程执行结果 本篇是用tcp套接字实现的一个远程执行命令的小案例,tcp套接字是一种面向连接的Socekt,针对面向连接的TCP服务应用,安全,但是效率低 ...

  2. ansible介绍、安装、远程执行命令、拷贝文件或目录、远程执行脚本、管理任务计划、安装包和管理服务、playbook、变量、循环、条件判断、handlers、安装nginx、管理配置文件

    24.15 ansible介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系 ...

  3. linux 带环境变量 远程执行,SSH远程执行命令环境变量问题

    SSH命令格式 usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address: ...

  4. 执行远程linux命令,linux shell 远程执行命令

    经常要部署多台服务器上面的应用,如果一个个机器的登录太麻烦. 所有就想到编写一个脚本来部署不同的服务器 前提条件: 配置ssh免登陆 如果不会的请参加我的另外一篇文章 http://blog.csdn ...

  5. 和远程ip_漏洞Microsoft Windows TCP/IP 远程执行代码漏洞威胁通告

    2020年10月14日,中测安华必达实验室技术团队依托监测平台第一时间发现微软公司(Microsoft)披露了Microsoft Windows TCP/IP 远程执行代码漏洞(CVE-2020-16 ...

  6. python paramiko模块:远程执行命令及上传和下载

    远程执行命令: df -y 交互输入y 基于公钥和私钥远程执行命令: 上传下载文件: 基于公钥和私钥上传和下载:

  7. 和远程ip_【漏洞预警】Windows TCP/IP远程执行代码漏洞(CVE202016898)

    2020年10月13日,阿里云应急响应中心监测到微软发布补丁修复了TCP/IP远程执行代码漏洞(CVE-2020-16898),官方评级严重.目前微软官方已提供相应的月度安全补丁以修复该漏洞. 漏洞描 ...

  8. Linux 实操———— Shell 远程执行命令

    引言 目前,开发人员的部署方式是,将项目打包(Maven 打包) 然后将 生成的 jar 包等文件,通过Xshell 等终端工具手动传输到远程服务器上,然后再通过在终端执行远程服务器上的 shell ...

  9. windows服务器远程执行命令(PowerShell+WinRM)

    Windows 远程管理 (WinRM) 是 WS-Management 协议的 Microsoft 实现.该协议是基于简单对象访问协议 (SOAP) 的.防火墙友好的标准协议,使来自不同供应商的硬件 ...

  10. PowerShell 远程执行命令

    PowerShell 远程执行命令 https://www.cnblogs.com/wanghao4023030/p/11151099.html 最近在做一些自动化的测试工作,在代码实现的过程中需要远 ...

最新文章

  1. Forerunner:首个面向“多未来”的推测执行技术
  2. 二叉树的层序遍历和二叉树的线索化
  3. 进程注入的研究与实现
  4. 【Unix 网络编程】TCP状态转换图详解
  5. Go语言中的匿名函数和闭包的样子
  6. 【Matlab】for循环进度条显示百分比进程和剩余时间
  7. collect2: error: ld returned 1 exit status编译错误
  8. 求助(十万火急):关于httpwebrequest发送请求绑定ip的问题.
  9. MyEclipse项目无法自动编译解决方案
  10. 可扩展的Web架构和分布式系统
  11. scala Trait及其与抽象类的比较
  12. 中国第二代支付清算体系
  13. appkey、appSecret自动生成
  14. 每天一记、美文积累、感慨杂谈
  15. 微信小程序设计稿pt怎么转rpx
  16. AutoCAD2014的安装
  17. 个人网站如何开通收款功能申请支付接口?
  18. [GUI] 使用MATLAB从图片中提取曲线数据
  19. HTTPS加密网站,地址重写配置
  20. 操作系统 - 处理机调度仿真

热门文章

  1. TMS320C55x的寄存器
  2. 汇编学习--7.16--直接定址表
  3. C语言:计算器程序。用户输入运算数和四则运算符,输出计算结果
  4. linux系统交换空间,Linux中如何使用和管理交换空间
  5. kafka offset入门理解
  6. java Hashset去重原理及HashMap key唯一原理
  7. i++与++i的区别+汇编分析
  8. input[type=radio]自定义样式
  9. 详解JS中的事件机制(带实例)
  10. Centos7 / RHEL 7 双网卡绑定