.Net Core使用Socket与树莓派进行通信详解
前言
去年买的树莓派一直放在抽屉里吃灰,前些阵子Debian 9发布,也不出意外的支持了树莓派。
于是重新拿出读卡器又重新了装上了Debian桌面版系统。
介绍
现在这个东西目前的程度只是了解一下Python和.Net的通信。最佳的版本应该是,可以通过服务器端远程执行树莓派命令。
这样做的原因大家也都知道,很多宽带现在不提供外网IP,这样造成家庭没有公网ip,也没办法远程对树莓派控制,我想做的东西类似内网穿透Ngrok之类的。
效果
Python端
#!/usr/bin/env python2 #-*- coding: utf-8 -*- import socket import threading import os host = '192.168.31.7' port = 5001 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((host, port)) def Start(): a = 0 while True: a = a+1 data = str(a).encode('utf8') + getCPUtemperature().encode('utf8') #s.send(str(a).encode('utf8')) print(data) #print(data) threading._sleep(10) def getCPUtemperature(): res = os.popen('vcgencmd measure_temp').readline() return(res.replace("temp=","").replace("'C\n","")) if __name__ == '__main__': Start()
很简单的代码片段,下星期的这时候应该就能写出大概的原型了,这个现在服务器上测试一下服务器端的稳定性。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
在树莓派2或树莓派B+上安装Python和OpenCV的教程
我的Raspberry Pi 2昨天刚邮到,这家伙看上去很小巧可爱. 这小家伙有4核900MHZ的处理器,1G内存.要知道,Raspberry Pi 2 可比我中学电脑实验室里大多数电脑快多了. 话说,自从Raspberry Pi 2发布以来,我收到了很多请求,要求我能写一个在它上面安装OpenCV和Python的详细说明. 因此如果你想在Raspberry Pi启动运行OpenCV和Python,就往下面看! 在博文的剩余部分,我将提供在Raspberry Pi 2 和Raspberry Pi
-
树莓派中python获取GY-85九轴模块信息示例
先看效果图 GY-85.py: 复制代码 代码如下: #!/usr/bin/python3# -*- coding: utf-8 -*-import cursesfrom time import *from i2clibraries import i2c_itg3205, i2c_adxl345, i2c_hmc5883l #==========================================================# GY-8
-
使用Python简单的实现树莓派的WEB控制
先给大家展示下效果如图,感觉还很满意请继续阅读全文: 用到的知识:Python Bottle HTML Javascript JQuery Bootstrap AJAX 当然还有 linux 我去,这么多--我还是一点一点说起吧-- 先贴最终的源代码: #!/usr/bin/env python3 from bottle import get,post,run,request,template @get("/") def index(): return template("i
-
Python实现树莓派WiFi断线自动重连的实例代码
实现 WiFi 断线自动重连.原理是用 Python 监测网络是否断线,如果断线则重启网络服务. 1.Python 代码 autowifi.py,放在 /home/pi 目录下: #!/usr/bin/python import os, time while True: if '192' not in os.popen('ifconfig | grep 192').read(): print '\n****** wifi is down, restart... ******\n' os.syst
-
.Net Core使用Socket与树莓派进行通信详解
前言 去年买的树莓派一直放在抽屉里吃灰,前些阵子Debian 9发布,也不出意外的支持了树莓派. 于是重新拿出读卡器又重新了装上了Debian桌面版系统. 介绍 现在这个东西目前的程度只是了解一下Python和.Net的通信.最佳的版本应该是,可以通过服务器端远程执行树莓派命令. 这样做的原因大家也都知道,很多宽带现在不提供外网IP,这样造成家庭没有公网ip,也没办法远程对树莓派控制,我想做的东西类似内网穿透Ngrok之类的. 效果 Python端 #!/usr/bin/env python2
-
Android Socket通信详解
一.Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是"请求-响应方式",即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据.而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求. 那么,什么是socket?Socket又称套接字,在程序内部提供了与外界通信的端口,即端口通信.通过
-
linux下用户程序同内核通信详解(netlink机制)
简介 linux下用户程序同内核通信的方式一般有ioctl, proc文件系统,剩下一个就是Netlink套接字了. 这里先介绍下netlink. Netlink 是一种在内核与用户应用间进行双向数据传输的非常好的方式,用户态应用使用标准的 socket API 就可以使用 netlink 提供的强大功能,内核态需要使用专门的内核 API 来使用 netlink. Netlink 相对于系统调用,ioctl 以及 /proc 文件系统而言具有以下优点: 1,为了使用 netlink,用户仅需要在
-
Python Socket实现远程木马弹窗详解
目录 基础知识 服务端(server)程序 客户端(client)程序 其他命令执行函数 该木马程序的基本用法 1.查看文件内容 2.查看文件目录 3.创建文件或目录 4.调用windows应用程序 5.调用Windows弹窗 严正声明:本文仅限于技术讨论,严禁用于其他用途. 基础知识 socket通信模块:针对TCP/IP协议簇进行的程序封装,在Windows/Linux均有这样底层模块. Unicode 有多种存储方式,常见的有 UTF-8.UTF-16.UTF-32,它们分别用不同的二进制
-
.NET Core中Object Pool的多种用法详解
前言 复用,是一个重要的话题,也是我们日常开发中经常遇到的,不可避免的问题. 举个最为简单,大家最为熟悉的例子,数据库连接池,就是复用数据库连接. 那么复用的意义在那里呢? 简单来说就是减少不必要的资源损耗. 除了数据库连接,可能在不同的情景或需求下,还会有很多其他对象需要进行复用,这个时候就会有所谓的 Object Pool(对象池). 小伙伴们应该也自己实现过类似的功能,或用ConcurrentBag,或用ConcurrentQueue,或用其他方案. 这也里分享一个在微软文档中的实现 Ho
-
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
vue中我们常常用到组件. 那么组件总体可以分为如下的几种关系. 父子组件, 爷孙组件, 兄弟组件. 这几种组件之间是如何通信的呢? 父子组件通信 根据vue中的文档可知, 组件的props属性用于接收父组件传递的信息. 而子组件想要向父组件传递信息, 可以使用$emit事件. 我们定义两个组件, 一个为父组件名为father, 另外一个为子组件child. 子组件通过props属性接收父组件传递的值, 这个值为fname, 是父组件的名字. 点击子组件的按钮, 触发toFather事件, 向父
-
ASP.NET Core扩展库之实体映射使用详解
在分层设计模式中,各层之间的数据通常通过数据传输对象(DTO)来进行数据的传递,而大多数情况下,各层数据的定义结构大同小异,如何在这些定义结构中相互转换,之前我们通过使用AutoMapper库,但AutoMapper功能庞大,使用较为复杂,而在很多场景下,可能我们只需要一些基础的对象映射功能,那么此时你可以选择扩展库中的轻量级AutoMapper实现. 实体映射包含以下核心功能: 在使用之前无需手动定义类型之间的映射关系 采用动态编译.缓存转换委托,提升性能. 支持通过特性定义属性映射关系 支持
-
vue前端开发层次嵌套组件的通信详解
目录 前言 示例 小结 前言 vue父子组件之间通过props很容易的将父组件的值传递给子组件,如果一个组件嵌套很多层,每一层之间度需要同props进行传值,很麻烦,且不易维护 示例 [示例]A组件中使用了B组件,B组件中使用了C组件,C组件需要使用A组件的数据text及使用A组件的方法getmethod.A组件代码如下: <template> <div> <P>这是A组件</P> <v-comb></v-comb> </div
-
.NET Core利用 AsyncLocal 实现共享变量的代码详解
目录 简介 AsyncLocal 解读 总结 简介 我们如果需要整个程序共享一个变量,我们仅需将该变量放在某个静态类的静态变量上即可(不满足我们的需求,静态变量上,整个程序都是固定值).我们在Web 应用程序中,每个Web 请求服务器都为其分配了一个独立线程,如何实现用户,租户等信息隔离在这些独立线程中.这就是今天要说的线程本地存储.针对线程本地存储 .NET 给我们提供了两个类 ThreadLocal 和 AsyncLocal.我们可以通过查看以下例子清晰的看到两者的区别: [TestClas
-
React中父子组件通信详解
目录 父组件向子组件通信 存在期 父组件向子组件通信 在父组件中,为子组件添加属性数据,即可实现父组件向子组件通信.传递的数据可以分成两类 子组件是作为属性来接收这些数据的 第一类就是数据:变量,对象,属性数据,状态数据等等 这些数据发生改变,子组件接收的属性数据就发生了改变. 第二类就是方法:父组件可以向子组件传递属性方法,子组件接收方法,并可以在组件内执行,有两种执行方式 注意:父组件传给子组件的方法是不能执行的,执行了相当于将方法的返回值传递给子组件. 第一种 作为事件回调函数执行 参数默
随机推荐
- javascript实现获取cookie过期时间的变通方法
- SQL注入绕过的技巧总结
- 多ajax请求的各类解决方案(同步, 队列, cancel请求)
- php 利用socket发送HTTP请求(GET,POST)
- Laravel 5框架学习之路由、控制器和视图简介
- python根据经纬度计算距离示例
- MySQL查询in操作 查询结果按in集合顺序显示
- PHP中__autoload和Smarty冲突的简单解决方法
- Python注释详解
- 浅析Ruby中的Profiling工具的用法
- jQuery表单美化插件jqTransform使用详解
- 详解Jquery 遍历数组之$().each方法与$.each()方法介绍
- JavaScript如何实现组合列表框中元素移动效果
- 利用FTP服务器的漏洞找肉鸡
- Android编程简单实现拨号器功能的方法
- java 中 String format 和Math类实例详解
- ASP.NET DropDownList控件的使用方法
- 第4章 数据处理-php字符串的处理-郑阿奇(续)
- node.js用fs.rename强制重命名或移动文件夹的方法
- java自定义封装StringUtils常用工具类