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

news2024/11/26 22:42:42

一、前言

        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 socket

my_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.coloradmin.cn/o/750027.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中位数(树状数组+二分)

L-中位数_2023河南萌新联赛第&#xff08;一&#xff09;场&#xff1a;河南农业大学 (nowcoder.com) 树状数组二分 #include <bits/stdc.h> using namespace std; typedef long long ll; const int N2e6; const long long inf 0x7f7f7f7f7f7f7f7f; #define endl \n in…

【Android Framework系列】第5章 AMS启动流程

1 AMS简介 AMS&#xff08;Activity Manager Service&#xff09;是Android中最核心的服务&#xff0c;管理着四大组件的启动、切换、调度及应用进程的管理和调度等工作。AndroidQ将Activity移到了ActivityTaskManagerService中&#xff0c;但也和AMS相关联。 AMS通过使用一些…

【来不及刷题之】44、滑动窗口最小值

暴力方法&#xff1a;超时 class Solution {public int[] maxSlidingWindow(int[] nums, int k) {int nnums.length;int sizen-(k-1);int[] resnew int[size];int slow0,quickk-1;int maxNumfindMax(nums,slow,quick);res[0]maxNum;while (quick<n-1){quick;int addNumnums…

66. 两个链表的第一个公共结点

目录 链接&#xff1a; 题目&#xff1a; 思路&#xff1a; 代码&#xff1a; 图片&#xff1a; 链接&#xff1a; 原题链接 题目&#xff1a; 输入两个链表&#xff0c;找出它们的第一个公共结点。 当不存在公共节点时&#xff0c;返回空节点。 数据范围 链表长度 [1,200…

mapbox跳过accesstoken检测

不写token的时候&#xff0c;控制台就会报这个错 写上token的时候&#xff0c;就会报这个错 然后想让这个错不再出现&#xff0c;就不要再声明mapboxgl.accessToken&#xff0c;并且把node_mudules这个文件夹下面的这个文件里面的红圈内的括号内容改成false。 this._request…

React 安装 报错“Modal不能用作jsx组件”

提示 &#xff1a;‘Modal’ cannot be used as a JSX component. 原因&#xff1a;可能导致是类似antd组件报错 要确认react ts 版本是否适配 解决方法&#xff1a; 第一步&#xff1a;查看代码中的 package.json 文件 查看 typescript 与 types/react 第二步&#xff1a;查…

这些ai图片处理工具就是你神奇的创作伙伴

当我们需要图像来代表某种概念或主题时&#xff0c;我们通常需要花费大量的时间去寻找、编辑、或者设计一张符合要求的图片。但是现在&#xff0c;随着人工智能技术的发展&#xff0c;越来越多的ai自动生成图片软件被开发出来&#xff0c;让我们可以更快捷地获取所需的图像。那…

【Flutter】 Flutter 实现 List Sort 排序 解决复杂业务逻辑下的数据排序问题

文章目录 一、前言二、Flutter 中的 List 排序基础1. Flutter 中的 List 简介2. List 的基本排序方法3. 自定义排序规则 三、在 Flutter 中实现复杂业务逻辑的 List 排序1. 业务逻辑一&#xff1a;根据对象属性排序2. 业务逻辑二&#xff1a;多条件排序 四、完整的 Flutter Lis…

pythonocc进阶学习:faces的inner wire与outer wire

总目录 >> PythonOCC入门进阶到实战(目前已更新入门篇、基础篇和进阶篇) 我们在这篇文章中绘制了带有holes的面&#xff0c; 本篇是在读取到外部文件如brep&#xff0c;igs&#xff0c;stp后获取面的性质&#xff0c;寻找面中的wires的正向与逆向 只显示外wire from O…

TCP/IP参考模型之http协议分层,三次握手、四次挥手

三次握手和四次挥手的过程&#xff1a; 三次握手&#xff1a; TCP建立连接的过程我们称之为3次握手。 &#xff08;1&#xff09;第一次握手 PC1使用一个随机的端口号向PC2的80端口发送连接请求&#xff0c;此过程的典型标志为SYN控制位为1&#xff0c;其他五位为0。 &#x…

credal set 的一些熵

今天看论文的时候看到credal set 的upper entropy [1]&#xff0c;另外作者还给出了一些这个熵的优点。 当然在[2] 里面又变成了缺点。 注意在上一篇博文&#xff0c;credal decision tree的论文里面&#xff0c;作者又推翻了自己的观点&#xff0c;认为这个熵是disaggregat…

C++数据结构笔记(9)树与二叉树的基本概念

1.只有一个结点也可以称为树&#xff0c;只不过没有叶子结点&#xff1b;也可以有0个结点&#xff0c;称为空树。 2.树具有递归性&#xff0c;树中还有树 3.结点的度&#xff1a;结点所拥有的子树的个数 4.树的高度&#xff1a;树的子树的最高层数 5.树的广义表示法&#x…

多肽合成定制756500-22-8,cyclo(Arg-Gly-Asp-d-Phe-Glu),试剂信息说明

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ 英文名称&#xff1a;cyclo(Arg-Gly-Asp-d-Phe-Glu) 规格标准&#xff1a;1g、5g、10g CAS&#xff1a;756500-22-8 分子式&#xff1a;C26H36N8O9 分子量&#xff1a;604.61 ------cyclo(Arg-Gly-Asp-d-Phe-Glu)结构式-…

AuthenticationFailedException: 526 Authentication failure[0]的解决方案

0、一句话概括bug的原因 项目更换了邮箱服务器&#xff0c;原服务器支持的账号格式在新服务器上不被支持&#xff1b;即发送给新服务器的账号错误。 1、概述 &#xff08;1&#xff09;bug: java程序通知阿里云邮箱服务器发送邮件失败。 异常报错信息&#xff1a;Authentic…

如何在 Blender 中更快地渲染?这些技巧需要知道

Blender 是一款开源 3D 建模和动画软件&#xff0c;动画艺术家、产品设计师和游戏创作者经常使用。Blender 不仅允许用户创建 2D 对象或角色并对其进行动画处理以获得 3D 模型&#xff0c;而且 Blender 背后还有强大的艺术家和计算机科学家社区&#xff0c;不断改进代码以提供功…

基于javascript的可以自定义设置圆几等份的抽奖示例

基于javascript的可以自定义设置圆几等份的抽奖示例 效果示例图代码示例使用class 效果示例图 代码示例 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style type"text/css">* {padding…

声音合成——Foley Sound——DECASE项目——多模态智能感知与应用——论文复现(4)

文章目录 下载对应的代码attributeerror: adam object has no attribute get_updatesNameError: name _calculate_reconstruction_loss is not defined 下载对应的代码 论文下载链接安装tensorflow环境&#xff0c;这里需要一些前奏&#xff0c;比如说如何安装cuda&#xff0c…

【04golang中各种运算符优先级的讲解代码和注释】

在Golang中&#xff0c;不同的运算符具有不同的优先级&#xff0c;这会影响表达式的计算顺序。了解运算符的优先级是编写正确和可读性高的代码的关键。本文将对Golang中常见运算符的优先级进行讲解&#xff0c;并提供一些示例代码和注释。 以下是Golang中常见运算符的优先级从…

谷粒商城篇章4 ---- P102-P172【分布式高级篇】

目录 1. Elasticsearch 1.1 基本概念 1.1.1 Index&#xff08;索引&#xff09; 1.1.2 Type&#xff08;类型&#xff09; 1.1.3 Document&#xff08;文档&#xff09; 1.1.4 倒排索引机制 1.2 Docker安装 ES 1.2.1 下载镜像文件 1.2.2 运行 Elasticsearch 1.3 初步…