Python物联网开发-Python_Socket通信开发-Python与Tcp协议物联网设备通信-Socket客户端

一、前言

        Python在物联网开发中的重要愈来愈重,因此,掌握Python语言与物联网设备之间的通信就显得尤为重要,可以通过编写Python程序实现获取物联网设备的传感器数值并可以更改物联网设备上的执行器状态。

二、程序实现

        首先,当使用Python进行Socket通信时,需要导入Python的socket库。

import socket

        创建一个socket对象,此处,我们使用TCP协议创建了一个客户端的socket对象。

my_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

        随后,规定要连接的设备(或Tcp服务器)的IP地址和端口。本代码将连接本机自身的Tcp服务器,以便于查看效果。

server_ip_port = ('127.0.0.1', 8080)

        根据上述信息,向服务器端发起连接请求。

my_socket.connect(server_ip_port)

        向服务器端发送消息或特定协议指令。

message = 'This is Xixi_CaiNiao!'
my_socket.send(message.encode())

        等待服务器端响应,接收来自服务器端的信息。(此处程序处于阻塞状态)

response = my_socket.recv(1024)

        将接收到的信息打印出来。

print(response.decode())

        程序结束,释放socket对象。

my_socket.close()

三、程序完整代码

# 西西菜鸟 2023-7-13
import socketmy_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_ip_port = ('127.0.0.1', 8080)
my_socket.connect(server_ip_port)
message = 'This is Xixi_CaiNiao!'
my_socket.send(message.encode())
response = my_socket.recv(1024)
print(response.decode())
my_socket.close()

四、效果演示

        打开网络调试助手,创建本地Tcp服务器。协议类型选择:TCP Server,IP与端口与源代码一致,'127.0.0.1'代表本地地址。

         运行程序,可以看到我们已经收到来自程序发送的字符串("This is Xixi_CaiNiao!")。

        此时,程序处于阻塞状态,等待服务端响应。此时,我们想客户端发送"OK"。

        此时,程序已经全部执行完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/21157.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGpt基于第三方API2D服务封装的SpringBoot starter

前置条件&#xff1a; 看下API2D官网&#xff0c;第三方API2D服务对接流程&#xff1a; 其对接文档地址 https://api2d.com/wiki/doc 一:创建一个空的Maven项目 完成后整的项目层级图如下 1.pom.xml 中添加相关依赖包 <?xml version"1.0" encoding"UTF-…

【Python详解】Python类的详细定义与使用案例

大家好&#xff0c;我是洲洲&#xff0c;欢迎关注&#xff0c;一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我&#xff01; 本文目录 前言一、定义类二、类的实例化三…

对于 Spring MVC 了解? SpringMVC 的执行流程?SpringMVC 的核心是什么?请求的流程是怎么处理的?控制反转怎么实现的?

对于 Spring MVC 了解? 之前 Model1 和 Model2 这两个没有 Spring MVC 的时代。 Model1 时代 : 整个 Web 应用几乎全部用 JSP 页面组成&#xff0c;只用少量的 JavaBean 来处理数据库连接、访问等操作。 JSP 既是控制层又是表现层&#xff0c;存在很多问题&#xff0c;如①将…

阿里云ECS扩容硬盘空间及文件系统

一.通过阿里云控制台扩容硬盘 前往ECS实例详情页面的云盘页签。 登录ECS管理控制台。在左侧导航栏&#xff0c;选择实例与镜像 > 实例。在顶部菜单栏处&#xff0c;选择目标ECS实例所在地域。找到待扩容云盘所在的实例&#xff0c;单击实例ID。在实例详情页面&#xff0c;单…

android studio 添加并读取json配置文件

第一步&#xff1a;在android studio中添加json文件&#xff1b; 第二步&#xff1a;读取文件的函数 private String[] getJosnData(){String result[] null;List<String> list new ArrayList<>();try {//获取本地的Json文件AssetManager assetManager mConte…

解析Java类加载的运行机制和双亲委派模型

类加载运行机制 类加载形如把.class文件&#xff0c;加载到内存中&#xff0c;得到类对象这样的过程 类加载一共分为五个步骤&#xff1a; 加载验证准备解析初始化 加载 类加载的第一步是将编译好的 Java 类的字节码文件加载到 Java 虚拟机&#xff08;JVM&#xff09;中。类…

阿里云:机器学习平台及OpenSearch

机器学习流程 相关项目 BladeDISC-AI编译优化 EasyRec-推荐算法库 EasyCV-视觉图像算法库 EasyNLP-NLP/多模态算法库 模型开发中算法团队面临的工程挑战 Develop platform OpenSearch 向量检索库

1.4 MVP矩阵

MVP矩阵代表什么 MVP矩阵分别是模型&#xff08;Model&#xff09;、观察&#xff08;View&#xff09;、投影&#xff08;Projection&#xff09;三个矩阵。 我们的顶点坐标起始于局部空间&#xff08;Local Space&#xff09;&#xff0c;在这里他成为局部坐标&#xff08;L…

【大语言模型】LLM应用程序的新兴体系结构

LLM应用程序的新兴体系结构 LLM应用栈设计模式&#xff1a;In-context learningData Preprocessing/EmbeddingPrompt Construction/RetrievalPrompt Execution/Inference What about agents?展望参考资料 大型语言模型是构建软件的强大新基元。但由于它们非常新颖且与常规计算…

J2EE集合框架Map

目录 一.Map特点 1.无序&#xff0c;键值对&#xff0c;键不能重复&#xff0c;值可以重复 2.键重复则覆盖&#xff0c;没有继承Collection接口 二.遍历方式 1.拿到key,再拿值2.拿到映射关系&#xff0c;键值都有 取出保存所有Entry的Set,再遍历此Set即可 三.HashMap与H…

【数据结构】树与二叉树(上)

目录 前言&#xff1a; 一、树&#xff1a; 1.树的概念&#xff1a; 2.树的相关概念&#xff1a; 3.树的表示&#xff1a; 4.书的实际使用场景&#xff1a; 二、二叉树&#xff1a; 1.二叉树的概念&#xff1a; 2.两种特殊二叉树&#xff1a; ①.满二叉树&#xff1a;…

C++图形开发(16):绘制一个圆环和一根针

文章目录 绘制一个圆环和一根针1.1 绘制1.2 line()函数1.3 circle()函数1.4 setlinestyle()函数1.5 setlinecolor()函数 接下来&#xff0c;我会继续制作一些小游戏&#xff0c;但因为整个难度的上升&#xff08;毕竟我也是初学者&#xff09;&#xff0c;可能文章不会再像之前…