主要通过MQTT实现通信。图片的上传和显示使用了服务器

对于没有服务器的同学,可以进入官网领取免费1个月的轻量云服务器:云产品免费试用;需要选购的进:轻量应用服务器专场;不清楚怎么操作的可以看教程:腾讯云产品免费试用教程

实现效果:

当然这只是一个示例,只要能实现手机间的通信,那就可以借助termux-api实现非常多的功能!

被控端手机(termux)

termux安装mqtt等库

pip install paho-mqtt, requests, imagemagick

termux中的Python代码为:

# coding:utf-8
import paho.mqtt.client as pahomqtt
import os
import base64
import requests
import timeclass MQTT:def __init__(self):self.CLIENTID = 'redmi8'self.MQTTHOST = "test.mosquitto.org"self.MQTTPORT = 1883self.USERNAME = 'lh'self.PASSWORD = "hualala"self.HEARTBEAT = 60self.topic_subscribe = r'/mqtt/redmi8'self.topic_publish = r'/mqtt/redmi8/send/msg'self.topic_publish_image = r'/mqtt/redmi8/send/image'self.client = pahomqtt.Client()self.CloudAllowRun = 1# MQTT连接回调def on_connect(self, client, userdata, flags, rc):if rc == 0:print("Connected")client.subscribe(self.topic_subscribe)# MQTT接收回调def on_message(self, client, userdata, message):result = 'ok'msg = str(message.payload.decode("utf-8"))print("Received message: " + msg)if msg.startswith('cmd:img'):_, cmd, path = msg.split(' ')print('path:', path)if cmd == 'upload':img = self.upload_image(path)if img:self.client.publish(self.topic_publish_image, img)result = 'upload ok'else:result = 'upload fail'elif cmd == 'remove':self.remove_image(path)result = 'remove ok'else:# 执行本地cmd命令,并将结果保存到变量result中result = os.popen(msg).read().strip() or 'capture ok'time.sleep(1)if self.upload_image(path=msg.split()[-1]):result += '\nupload ok'print("Command result: " + result)self.client.publish(self.topic_publish, result)def remove_image(self, path="a.png"):url = 'http://xfxuezhang.cn/web/picture/remove_file.php?name='+pathif os.path.exists(path):os.remove(path)return requests.get(url).textdef upload_image(self, path="a.png"):result = Nonetry:url = 'http://xfxuezhang.cn/web/picture/upload_file.php'os.popen(f'convert {path} -resize 200x150 {path}')filename = path.split('/')[-1]files = {"file": (filename, open(path, "rb"), "image/png")}response = requests.post(url, files=files)print(response.text)result = response.json()['data']except Exception as e:print(e)return resultdef convert_image(self, path="a.png"):os.popen(f'convert {path} -resize 200x150 {path}')# 从文件中读取图片并将其转换为二进制数据with open(path, "rb") as f:image_bytes = f.read()# 将二进制数据编码为base64字符串image_base64 = base64.b64encode(image_bytes).decode("utf-8")return image_base64def mqtt(self):self.client.on_connect = self.on_connectself.client.on_message = self.on_messageself.client.username_pw_set(self.USERNAME, self.PASSWORD)try:self.client.connect(self.MQTTHOST, self.MQTTPORT, self.HEARTBEAT)# self.client.loop_start()  # 线程self.client.loop_forever()except:passdef publish(self, msg):self.client.publish(topic=self.topic_publish, payload=msg, qos=1)if __name__ == '__main__':Mqtt = MQTT()Mqtt.mqtt()# while True:#     time.sleep(10)#     msg = input('>> ')#     Mqtt.publish(msg)

运行记录:

控制端手机

另一台控制端的手机上安装“MQTT Dashboard”,并添加一些组件,其中的主题根据上面的代码来填。实现效果:

【教程】手机远程连接另一台手机的termux进行拍照相关推荐

  1. 手机远程连接window界面或ubuntu界面

    背景 有些场景,可能用手机处理更方便. 例如一台设备装着ubuntu系统,然后这时候手头上没有鼠标.键盘或屏幕,只知道该设备的ip.这时候用手机远程连接,就同时解决了缺少的硬件设备问题. 服务端搭建 ...

  2. android华为手机开启蓝牙耳机,华为手机如何连接蓝牙耳机? 华为手机连接蓝牙耳机方法教程介绍!...

    我们现在在用手机的时候经常会用到耳机,听歌接电话看视频都离不开耳机,但是有的时候如果觉得耳机插来插去很麻烦就可以尝试用蓝牙耳机,那么知道华为手机怎么连接蓝牙耳机吗?具体的连接方法是怎么样的呢?下面小编 ...

  3. 用手机远程连接阿里云腾讯云服务器的方法

    用手机连接云服务器,需要用到ssh远程连接工具,而阿里云app里面就有这个功能.连接起来还是比较方便的. 下面说说如何用ssh工具来连接阿里云服务器和腾讯云服务器. 详细过程也可以查看视频教程: 用手 ...

  4. 手机无显示如何和电脑连接服务器,手机远程连接无网电脑连接服务器

    手机远程连接无网电脑连接服务器 内容精选 换一换 本节操作以Windows Server 2012操作系统的云服务器为例介绍实现多用户登录的操作步骤.Windows server2012服务器默认能够 ...

  5. 华为一台手机怎么给另外一台手机传送文件?

    华为一台手机怎么给另外一台手机传送文件? 两台手机都打开"华为分享"功能. 选中传送的文件,点击分享,分享界面会出现另外一台手机的头像,点击即可传送. 是不是学会了 华为一台手机怎 ...

  6. 服务器win系统手机怎么连接,[教程+软件+云电脑]win系统服务器手机远程连接教程...

    [第十三节]后续上节的服务器远程连接教程 (首先关注+)(可以当云电脑)(可以登QQ) (可以挂机器人)(游戏自测) (服务器可以选腾讯云10元一个月的学生机) 老规矩,喜欢就给我点个赞,关注我,有不 ...

  7. 手机远程服务器rd,手机远程连接服务器工具:RD client远程桌面使用教程

    可以看到弹出来一个输入框,PCname填写服务器的IP,有端口的要输入端口, User name点击倒三角有三个选择,Enter every time(每次输入).Administrator.Add ...

  8. 怎么设置锤子手机显示无服务器,锤子手机远程协助怎么使用 锤子手机远程协助使用教程【详解】...

    最近,锤子科技向锤子手机用户推送了全新的Smartisan OS 2.5版本.该版本除了对已知的一些bug进行修复之外,也带了全新的:远程协助功能.那么,锤子手机远程协助怎么使用呢?今天,小编就给大家 ...

  9. 用手机怎么连接服务器?如何用手机远程连接服务器?

    现在很多游戏.应用为了体验感好.方便使用都实现了多端同步,服务器远程连接也不例外,今天飞飞给你们分享手机连接服务器远程桌面的操作方法 不管是安卓还是苹果手机,咱们都需要用到一个软件,叫做RD clie ...

最新文章

  1. Linux 的启动流程
  2. HTML标签详解之格式标签
  3. javascript调试工具
  4. 【机器学习基础知识】各类熵总结
  5. 初学Linux之程序安装
  6. 宝塔安装 pdo_mysql_linux宝塔面板安装安装 pdo_sqlsrv扩展
  7. 超级抖音腾讯视频V3.6.0小程序源码 前端+后端 支持视频采集和上传
  8. java 封装结果集_java封装结果集
  9. eclipse properties 中文显示编码_JMeter点道为止系列(1)JMeter配置文件jmeter.properties常用配置项...
  10. c语言编程无法生成dat文件格式,c++ - 无法从.dat文件读取数据(从Simulink创建的VS2012 C ++项目) - 堆栈内存溢出...
  11. 关于axure rp 是做什么用的
  12. 如何用Python爬取你的微信好友信息
  13. 淘宝购物券,淘宝网的购物券怎么用
  14. (二):多模态机器学习:综述与分类
  15. [Android GMS 认证] GTS相关问题
  16. CSS3 动画属性 - 逆战班
  17. FW: 业精于勤:量级与数量级的差异
  18. ubuntu 18.04 新配主机 无wifi适配器 找不到wifi问题解决
  19. Android初学习
  20. 计算机无法安装MUMU模拟器,如何安装网易MuMu模拟器 MuMu模拟器怎么用

热门文章

  1. 【软件工具篇02】使用Anki克服遗忘曲线
  2. [POI2009]Lyz
  3. 语句摘抄——第16周
  4. 江苏专转本计算机第七章,2013江苏专转本 第七章 无穷级数.ppt
  5. 拼多多提前批(7月28号笔试题
  6. 通过 ICMP 协议实现 Ping Tunnel 建立可穿透网络隧道
  7. 30多种免费的高级WordPress主题,适用于令人惊叹的照片,教育和房地产网站
  8. 自定义控件-视觉特效
  9. Ubuntu14.04上安装calamari
  10. 最小二乘拟合二次曲线在STM32中的实现笔记