基于STM32的ESP8266使用教程(四)(短篇)

2023-10-30

写在前面:在上一篇中介绍了通过单片机发送指令控制WIFI模块,本来想写一下时钟、I/O口及串口的初始化函数,但是因为项目年代久远(一年前做的),怕有错误,误导博友,故不给出代码,见谅。本章要介绍Android端通过WIFI与手机建立连接并通信的过程。

我们使用Socket类,即“套接字”进行通信。由于其相关说明对程序开发没有多大帮助,故不再赘述,只需知道使用其进行通讯需要目标的IP地址及端口号即可,直接来看代码:

Test_Button.setOnClickListener(new OnClickListener(){
	@Override
	public void onClick(View v){
		//在子进程中完成数据的获取,在主进程中完成UI更新
		new Thread(new Runnable(){//开启一个线程
        		@Override
        		public void run(){
        			try{
        				Socket TestSocket = new Socket();//new一个socket
        				TestSocket.connect(new InetSocketAddress("192.168.4.1", 8080), 8000);//三个参数分别是IP、端口、超时
					OutputStream TestOS = TestSocket.getOutputStream();//输出流
        				InputStream TestIS = TestSocket.getInputStream();//输入流
        				byte send_buffer[] = {40};//输出字符数组
					byte rec_buffer[] = new char[10];//输入字符数组
        				TestOS.write(buffer);//这样字符就发送了
        				for(int i = 0; i < 10; i++){
        					rec_buffer[i] = TestIS.read();//read()方法是一个字符一个字符接收
   		         		}
        				//关闭所有流及socket
        				TestOS.close();
        				TestIS.close();
        				TestSocket.close();
					//接下去可对收到的数据进行操作
        			}
        			catch(Exception e){
        				//可以打印错误日志啥的
        			}
        		}
        	}).start();
        }
});
总结一下: 通信过程很简单,建立一个Socket,调用connect()方法,通过输入输出流传递数据,最后关闭流和Socket即可。

至此,完成了全部关于WIFI模块的使用教程。

下面放上百度盘链接:网络调试助手下载链接:点击打开链接 串口调试助手下载链接:点击打开链接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于STM32的ESP8266使用教程(四)(短篇) 的相关文章

  • WSL安装图形界面

    效果如下 1 下载并安装VcXsrv 链接如下 https sourceforge net projects vcxsrv 下载完安装一路next即可 或者自行选择安装路径 2 安装桌面环境 安装xfce4 terminalsudo apt
  • mysql的锁

    锁 锁机制用于管理对共享资源的并发访问 用来实现事务的隔离级别 锁类型 共享锁和排他锁都是行级锁 MySQL当中事务采用的是粒度锁 针对表 B 树 页 B 树叶子 节点 行 B 树叶子节点当中某一段记录行 三种粒度加锁 共享锁 S 可理解为
  • Python进阶-----面向对象2.0(特有属性和方法与私有属性和方法)

    目录 前言 1 添加特有属性 方法 示例1 添加特有属性 示例2 添加特有方法 2 私有属性 方法 1 私有化示例 2 私有化属性 方法可以在类的内部使用 3 强制访问私有化属性 方法 4 property装饰器去操作私有属性 方法 总结
  • 【测试入门】测试用例经典设计方法 —— 因果图法

    01 因果图设计测试用例的步骤 1 分析需求 阅读需求文档 如果User Case很复杂 尽量将它分解成若干个简单的部分 这样做的好处是 不必在一次处理过程中考虑所有的原因 没有固定的流程说明究竟分解到何种程度才算简单 需要测试人员根据自己
  • 【LeetCode-面试经典150题-day24】

    目录 35 搜索插入位置 74 搜索二维矩阵 162 寻找峰值 33 搜索旋转排序数组 35 搜索插入位置 题意 给定一个排序数组和一个目标值 在数组中找到目标值 并返回其索引 如果目标值不存在于数组中 返回它将会被按顺序插入的位置 请必须
  • 详解UART、I2C、SPI常用通信协议(全是细节)

    前言 UART I2C和SPI是我们在嵌入式开发中比较常见的通信协议了 没有最好的通信协议 每个通信协议都有自己的优缺点 如果想要通信速度快 SPI 将是理想的选择 如果用户想要连接多个设备而不是过于复杂 I2C 将是理想的选择 因为它最多
  • Java fail-fast与fail-safe

    fail fast和fail safe比较 java util包下面的所有的集合类都是快速失败的 而java util concurrent包下面的所有的类都是安全失败的 快速失败的迭代器会抛出ConcurrentModificationE
  • mac如何添加新的字体格式(以word中仿宋_GB2312为例)

    注意 字体中必须出现GB 2312格式的选项 才算成功
  • C#创建TCP服务器与客户端互传消息实例

    本项目使用C 语言建立一个TCP通讯实例 并可以互相传递消息 传送一下传智播客赵老师的视频课程 关键词解释 1 TCP协议 一种可以用于网络通信的数据传输协议 传输安全可靠不会有信息丢失 重点理解三次握手与四次分手 2 线程Thread 我
  • SQL2008 附加数据库提示 5120错误

    前几天在附加数据库时 出现了这个错误 在win7 x64系统上使用sql2008进行附加数据库 包括在x86系统正在使用的数据库文件 直接拷贝附加在X64系统中 时 提示无法打开文件 5120错误 这个错误是因为没有操作权限 所以附加的时候
  • 2018-02-07 如何记录日志

    一 简介 二 记录日志的目的 why 开发调试 记录用户行为 程序运行状况 系统 机器状况 三 日志的要素 what 时间 位置 级别 内容 唯一标识 事件上下文 格式化 其他 四 记录日志的一些原则和技巧 使用框架或模块 不能出错 避免敏
  • npm run build打包产生的build文件夹通过nginx部署到服务器上访问(centos8)

    首先在当前目录下 用npm run build命令将文件打包到build文件夹 或者是其他文件夹名 把build目录传到服务器上 打开终端 提一句 Windows在Microsoft store里新出的terminal应用还蛮好用的 当然是
  • 30分钟学会React Hook, Memo, Lazy

    我们来学习React 16 8里的新特性 1 自行配置好React的环境 推荐你使用Create React APP 你也可以下载本文档Zip解压到本地直接运行 https github com yurizhang fed study bl
  • python之用scapy分层解析pcap报文(Ethernet帧、IP数据包、TCP数据包、UDP数据包、Raw数据包)

    一 工具准备 下载安装scapy库 https blog csdn net qq 23977687 article details 88046257 安装完后 ls 命令可以查看所有支持的协议 ls IP 命令列出ip协议头部字段格式 只要
  • JDK线程池源码分析

    0 概述 线程池 从字面的含义上来看 是指管理一组工作线程 Worker Thread 的资源池 线程池是与工作队列 Work Queue 密切相关的 其中在工作队列中保存了需要执行的任务 工作线程很简单 从任务队列中取出一个任务 执行任务
  • 可解释的机器学习

    原文标题 Interpretable Machine Learning 作者 Parul Pandey 译者 intelLigenJ 算法工程师 鸢尾 编辑 王立鱼 原文链接 https towardsdatascience com int
  • [思维模式-5]:《如何系统思考》-1- 认识篇 - 总体结构与知识框架

    目录 前言 第一篇 认知篇 第1章 无所不在的系统 2 第2章 思维的转变 30 第二篇 方法与工具 第3章 深入思考 50 第4章 动态思考 78 第5章 全面思考 109 第6章 系统思考的 新语言 因果回路图 140 第7章 复杂背后
  • SpringCloud微服务项目快速搭建(SpringCloud Alibaba)

    一 概述 Spring Cloud Alibaba 是 Spring Cloud 和 Alibaba 面向微服务架构的一站式解决方案 为 Spring Cloud 生态中的各个组件提供了与 Alibaba 中间件的衔接 更方便 更易用的快速
  • Kali镜像下载

    http old kali org kali images 太全了 爱了爱了 存档

随机推荐

  • go语言实现NFT

    此文章以及链码 合约 均为原创 已通过以heco nft记录为NFT资产 HecoInfo Transaction Hash Txhash Details HecoInfo 请勿转载 如有兴趣 可扫描文章最后的二维码 基于erc721的以太
  • linux 硬盘分区,分区,删除分区,格式化,挂载,卸载笔记

    linux 虽然一直都有在玩 但是对硬盘操作确实不是很熟悉今天有空 就整理了下 1 创建分区 先查看下是否有磁盘没有分区 html view plain copy fdisk l 其中第一个框和第二个框 是已经分好区的磁盘 第三个硬盘没有分
  • 深入jvm虚拟机第4版_深入JVM虚拟机,阿里架构师直言,这份文档真的是JVM最深解读...

    作为一名优秀的 Java 开发程序员 以及想那些想要学习 Java 更深层一点的知识的同学 对 JVM 的熟悉与熟练使用是必不可缺的核心技能了 也是每个 Java 程序员应该要做到的 深入学习 JVM 可以有助于我们掌握 Java 应用程序
  • 推荐一款提高工作效率的屏幕扩展软件—Splashtop Wired XDisplay

    一 导读 使用Splashtop Wired XDisplay让闲置的手机平板成为电脑的第二块屏幕Splashtop Wired XDisplay 好文章 记得 收藏 点赞 关注 如果你和我一样抱怨着显示器太小 Idea编程软件占用了太多工
  • 03 ZooKeeper底层原理剖析与命令实战

    文章目录 03 ZooKeeper底层原理剖析与命令实战 1 Znode数据结构 1 1 目录结构 1 2 节点类型 2 ZK客户端命令行操作 3 ZooKeeper会话 4 事件监听机制原理剖析 5 广播模式剖析 6 ZooKeeper集
  • vs报错:TRACKER : 错误 TRK0005: 未能找到: “CL.exe”。系统找不到指定的文件

    平台 win 10 错误 如题 解决 1 参考 Windows11下配置Visual Studio2022 环境变量 Windows下配置Visual Studio 通用 2 1 运行 C Program Files Microsoft V
  • java定义一个类_Java类的定义格式:Java如何定义一个类

    在面向对象的思想中 最核心的就是对象 为了在程序中创建对象 首先需要定义一个类 类是对象的抽象 它用于描述一组对象的共同特征和行为 例如人都有姓名 年龄 性别等特征 还有学习 工作 购物等行为 以面向对象的编程思想 就可以将某一类中共同的特
  • 图的深度优先搜索和广度优先搜索

    图的深度优先搜索算法 dfs 图的深度优先搜索算法是以一个顶点为起始点开始挖掘 一个分支挖掘完 再继续挖掘下一个分支 在实现上需要用到栈 因此 图的深度优先搜索算法有很多条路径 取决于哪个顶点最先入栈 实现思路 非递归 dfs可以用栈来进行
  • 解决QT中TCP传数据的困惑

    问题一 当传输数据过大时 readAll不能读完这一条完整的报文 报文格式如下 解决方法 针对此问题 可以通过一个全局变量 将多次读到的数据合并 问题二 粘包现象之多次write对应一次read 深入查看ReadyRead 信号的产生条件可
  • CNN笔记:通俗理解卷积神经网络

    通俗理解卷积神经网络 cs231n与5月dl班课程笔记 1 前言 2012年我在北京组织过8期machine learning读书会 那时 机器学习 非常火 很多人都对其抱有巨大的热情 当我2013年再次来到北京时 有一个词似乎比 机器学习
  • make编译出错Relocations in generic ELF (EM: 62)

    参考 编译出错Relocations in generic ELF EM 62 main o Relocations in generic ELF EM 62 错误信息是 通过查看文件 main o 发现ELF 64bit x86 64 在
  • ClickHouse副本同步及分布式DDL的原理

    相信了解大数据的小伙伴们都知道 基本上所有的分布式存储系统都有一个共同的特点 将庞大的数据量分成多个小块存储在不同的机器上 通常称为分片 每个分片为了保证它数据不丢失 它们又有各自副本 ClickHouse也不例外 一起来看看ClickHo
  • 5.Mybatis 缓存详解

    5 1 一级缓存 一级缓存 也叫本地缓存 默认会开启 并且不能控制 想要关闭一级缓存可以在select标签上配置flushCache true 一级缓存存在于 SqlSession 的生命周期中 在同一个 SqlSession 中查询时 M
  • 微信小程序之如何注册微信小程序

    注册小程序帐号 在微信公众平台官网首页 mp weixin qq com 点击右上角的 立即注册 按钮 选择注册的帐号类型 显示了4选项 我们现在是注册小程序 所以选择小程序 填写邮箱和密码 请填写未注册过公众平台 开放平台 企业号 未绑定
  • VMware虚拟机安装ubuntu20.04缓慢、卡顿

    背景 VMware Workstation版本是14 本地虚拟机上ubuntu版本是16 04的 有32位和64位 编译原理课程需要18或20以上的版本 决定再装一个20的 出现各种问题 进入黑屏 等三五分钟才缓过来 选择语言中文后 安装卡
  • C# ModbusTcp(协议)

    以下用例为读取线圈 可读取多个连续的线圈 01功能码 起始地址 var inputAddress 4 读取长度 var inputReadLength 8 var station BitConverter GetBytes 4 0 从站地址
  • 编译OpenCV以及openc_contrib提示缺少boostdesc_bgm.i文件出错的解决

    编译OpenCV 以及 openc contrib 提示缺少boostdesc bgm i文件出错的解决 错误 opencv contrib modules xfeatures2d src boostdesc cpp 673 20 fata
  • 软件测试与质量学习笔记3--白盒测试

    1 白盒测试的两种常用技术 覆盖测试 在测试过程中 以覆盖某些程序元素为测试目标的测试 路径测试 从流程图上讲 程序的一次执行对应于从入口到出口的一条路径 针对路径的测试即为路径测试 从广义的角度讲 任何有关路径分析的测试都可以被称为路径测
  • MATLAB大小写字符的转换

    输入一个字符 若为大写字母 则输出其对应的小写字母 若为小写字母 则输入其对应的大写字母 若为数字字符则输出其对应的数值 若为其他字符则原样输出 第一种 clear clc n input enter a number n if n gt
  • 基于STM32的ESP8266使用教程(四)(短篇)

    写在前面 在上一篇中介绍了通过单片机发送指令控制WIFI模块 本来想写一下时钟 I O口及串口的初始化函数 但是因为项目年代久远 一年前做的 怕有错误 误导博友 故不给出代码 见谅 本章要介绍Android端通过WIFI与手机建立连接并通信