还在找远控?来看我用十几行python代码写个简易远程控制
刚开始学习编程的同学可能经常会问:“我学了这个干什么用?买菜的时候掏出电脑来编个程序算算多少钱?”
其实,这跟大家的知识面和入门选择的语言有很大关系,大部分同学会选择C语言来入门编程,C语言虽然简洁,但是面向过程的编程方式总会让人觉得枯燥无味,无所适从。
那咱们现在做个有意思的,做个超级简易的远程控制软件,好吧~其实顶多算个脚本。
既然是远控,那就需要确定两个功能:
1、远程
即通过网络访问外部主机(包括内网),我们可以利用Python中封装好的 socket库,可以实现远程传输文本、文件、视频等。
Python socket详情介绍
2、控制
控制,最简单的理解就是执行命令,那么我们可以采用Python中的 os库,即可执行Linux shell 命令。
Python os详情介绍
下面就是代码,保存成.py文件,然后先执行server.py 再执行 client.py。
服务端,保存成 server.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import socket
import os
line=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
line.bind(('服务器IP',监听端口))
line.listen(5)
print('waiting commd------->')
while True:
conn,addr=line.accept()
msg=conn.recv(1024)
if msg == 'q':
break
print('get commd:',msg)
result=os.popen(msg).read()
conn.send('result: '+result)
conn.close()
phone.close()
客户端 保存成client.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import socket
while True:
line=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
line.connect(('服务器IP',监听端口))
msg = str(raw_input('please input commd:'))
line.send(str(msg).encode('utf-8'))
data=phone.recv(1024)
print data
line.close()
执行结果如下:
服务端执行结果
客户端在服务端执行 ls 命令后返回的结果
另外,小编有自己的学习交流群(主要是Python)大家如果想要来学习的话,可以加下:719+139+688,不管你是小白还是大牛,小编都欢迎,而且小编会在群里面不定期分享干货,包括小编自己整理的一份2018年最新学习资料和零基础入门教程,欢迎初学和进阶中的小伙伴

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Python黑科技:50行代码运用Python+OpenCV实现人脸追踪
嗨,我最亲爱的伙计们,很高兴我们又见面了。 首先先感谢朋友们的关注。当然我更希望认识与计算机相关的领域的朋友咱们一起探讨交流。重点说一下,我是真人,不是那些扒文章的自媒体组织,大家可以相互交流的! 本篇文章我们来讲一下关于AI相关的人脸追踪,人脸识别相关的一些知识。当然本篇教程为(上)部分,讲一下利用python+opencv来实现人脸识别与追踪,明后天出(下)部分,用python来通过指纹对比实现人脸验证、人脸解锁(大家感兴趣的可以提前关注哦)。 这两节课呢,代码量都不是很多,鄙人尽量多注释点,便于大家理解。那我们就不多啰嗦废话了,直接上干货! OpenCV: opencv目前来讲是十分流行的视觉库,而且可以支持多语言。说到opencv就不得不说它的cascades分类器。 如果我们要判断一张图片是不是有一张脸,早期方式是通过成千上万的分类器去从头匹配到尾,这样看并没有什么什么毛病,但判断的图片多了呢?那可能需要猴年马月。opencv的cascades呢,就把这些用来判断人脸特征的容器划分成多块层层匹配,到一层不匹配就被丢弃。 这好比一群人去公司面试,公司第一个要求是只要男人,那一批...
-
下一篇
Java并发机制底层实现原理-synchronized
章节目录 synchronized的实现原理与应用 synchronized 重量级锁 1.6版本之前 synchronized 被称之为 重量级锁 1.6版本对 synchronized 进行了优化,主要优化的点在于 减少 获得锁和释放锁带 来的性能消耗,为实现这个目的引入了偏向锁、与轻量级锁。 synchronized 实现同步的基础 Java中每一个对象都可以作为锁。 普通同步方法,锁是当前实例对象。 静态同步方法块,锁是当前类的Class对象。 对于同步方法块,锁是synchronized括号里配置的对象。 synchronized 同步锁的获取 底层原理 如下图所示: synchronized 同步锁的获取 底层原理.png synchronized锁的存储位置 synchronized 用的锁是存在java对象头里的。 对象头中的Mark-word 默认存储对象的hashcode、分代年龄、和锁标志位。 Mark-word 中存储的数据会随着锁标志位的变化而变化 轻量级锁-00 重量级锁-10 GC标记-11 偏向锁-01 锁的升级与对比 Java SE 1.6 当中锁一共...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- MySQL数据库在高并发下的优化方案
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境