当前位置: 首页 > news >正文

4.物联网LWIP之C/S编程

LWIP配置

服务器端实现

客户端实现

错误分析

一。LWIP配置(FREERTOS配置,ETH配置,LWIP配置)

1.FREERTOS配置

 为什么要修改定时源为Tim1?不用systick?

原因:HAL库与FREERTOS都需要使用systick,两者冲突,所以修改时钟源,让FREERTOS使用Tim1。

 2.ETH配置

 3.LWIP配置

 4.步骤:
(1)freertos.c中会自己出现一个Lwip初始化

运行后结果:命令行中输入ping 192.168.1.10有回复

 二。服务器端

1.功能分析

小写转大写

 2.建立socket_tcp_server.h

#ifndef SOCKET_TCP_SERVER_H
#define SOCKET_TCP_SERVER_H#define SERVER_IP				"192.168.1.11"
#define SERVER_PORT			6666
#define BUFF_SIZE				1024void vTcpServerTask(void);#endif

 3.建立socket_tcp_server.c,并添加到文件中

#include "socket_tcp_server.h"
#include "lwip/sockets.h"
#include "ctype.h"char ReadBuff[BUFF_SIZE];/*** @brief  TCP 服务器任务* @param  None* @retval None*/
void vTcpServerTask(void){int 	 sfd, cfd, n, i;struct sockaddr_in server_addr, client_addr;socklen_t	client_addr_len;//创建socketsfd = socket(AF_INET, SOCK_STREAM, 0);server_addr.sin_family 			= AF_INET;server_addr.sin_port   			= htons(SERVER_PORT);server_addr.sin_addr.s_addr = htonl(INADDR_ANY);//绑定socketbind(sfd, (struct sockaddr *)&server_addr, sizeof(server_addr));//监听socketlisten(sfd, 5);//等待客户端连接client_addr_len = sizeof(client_addr);cfd = accept(sfd, (struct sockaddr *)&client_addr, &client_addr_len);printf("client is connect cfd = %d\r\n",cfd);while(1){//等待客户端发送数据n = read(cfd, ReadBuff, BUFF_SIZE);//进行大小写转换for(i = 0; i < n; i++){ReadBuff[i] = toupper(ReadBuff[i]);		}//写回客户端write(cfd, ReadBuff, n);}
}

相关文章:

4.物联网LWIP之C/S编程

LWIP配置 服务器端实现 客户端实现 错误分析 一。LWIP配置&#xff08;FREERTOS配置&#xff0c;ETH配置&#xff0c;LWIP配置&#xff09; 1.FREERTOS配置 为什么要修改定时源为Tim1&#xff1f;不用systick&#xff1f; 原因&#xff1a;HAL库与FREERTOS都需要使用systi…...

在 PyTorch 中使用关键点 RCNN 进行人体姿势估计--附源码

人体姿态估计是计算机视觉领域的一个重要研究领域。它涉及估计人体上的独特点,也称为关键点。在这篇博文中,我们将讨论一种在包含人类的图像上查找关键点的算法,称为Keypoint-RCNN。该代码是使用 Pytorch 使用Torchvision库编写的。 假设您想要建立一名私人健身教练,可以通…...

Dubbo及Zookeeper安装

...

ZK-C3595、ZK-C35100、ZK-C40100、ZK-C40110超越离合器

ZK-A3072、ZK-A3080、ZK-A4090、ZK-A3595、ZK-A35100ZK-A40100、ZK-A40110、ZK-A3072、ZK-C3080、ZK-C4090、ZK-C3595、ZK-C35100、ZK-C40100、ZK-C40110单向离合器(超越离合器) MG300M1300MG400、M1400MG500、M1500MG600、M1600MG700、M1700MG750、M1750MG800、M1800MG900、M1…...

Azure共享映像库构建VM镜像

什么是Azure共享映像库 Azure共享映像库是一项在Microsoft Azure中以共享方式存储和管理映像的服务。映像是预配置的虚拟机操作系统和应用程序的快照&#xff0c;可以用来创建多个虚拟机实例。通过将映像存储在共享映像库中&#xff0c;用户可以轻松地共享映像给其他Azure订阅…...

【C++】AVL树(平衡二叉树)

目录 一、AVL树的定义二、AVL树的作用三、AVL树的插入操作插入——平衡因子的更新插入——左单旋插入——右单旋插入——左右双旋插入——右左双旋 四、ALVL树的验证五、AVL树的性能 一、AVL树的定义 AVL树&#xff0c;全称 平衡二叉搜索&#xff08;排序&#xff09;树。 二…...

「UG/NX」Block UI 面收集器FaceCollector

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#...

剑指Offer61.扑克牌中的顺子 C++

1、题目描述 从若干副扑克牌中随机抽 5 张牌&#xff0c;判断是不是一个顺子&#xff0c;即这5张牌是不是连续的。2&#xff5e;10为数字本身&#xff0c;A为1&#xff0c;J为11&#xff0c;Q为12&#xff0c;K为13&#xff0c;而大、小王为 0 &#xff0c;可以看成任意数字。…...

vue实例挂载过程

以下仅为个人见解。 1.大致流程&#xff1a; new Vue()时会调用initMixin(Vue)将_init挂载到vue原型上&#xff1b;在_init()中调用$mount()方法($mount()方法也是挂载到vue原型上的)编译template模版&#xff0c;并生成render()函数&#xff1b;挂载到vm上后&#xff0c;会…...

【第八讲---视觉里程计2】

在图像中提取特征点并计算特征描述&#xff0c;非常耗时 通过计算描述子距离在不同图像中寻找特征匹配&#xff0c;也非常耗时 利用通过匹配点信息计算相机位姿&#xff0c;没什么问题 我们可以采用以下方法进行改进&#xff1a; 光流&#xff1a;通过其他方式寻找匹配点直接法…...

设置PHP的fpm的系统性能参数pm.max_children

1 介绍 PHP从Apache module换成了Fpm&#xff0c;跑了几天突然发现网站打不开了。 页面显示超时&#xff0c;检查MySQL、Redis一众服务都正常。 进入Fpm容器查看日志&#xff0c;发现了如下的错误信息&#xff1a; server reached pm.max_children setting (5), consider r…...

vue3setup标签语法 + vite + delfin 递归组件实现无限评论功能

1、 功能效果 在线预览&#xff1a;https://szhihao.gitee.io/comment/ gitee仓库地址&#xff1a;https://gitee.com/szhihao/comment 2、实现的具体技术点 根据不同的人名可以进行评论&#xff08;tap切换&#xff09; 对进行的评论可以无限进行回复&#xff08;递归组件和…...

optee中如何开启或关闭所有中断的

我们知道在Linux Kernel中开启或关闭中断的函数是:local_irq_enable()和local_irq_disable(), 那么在optee os中是怎样做到的呢? optee中通过使用thread_mask_exceptions()和thread_unmask_exceptions()来开启或关闭中断。 thread_mask_exceptions()和thread_unmask_excepti…...

基于STM32+微信小程序设计的宠物投喂装置(腾讯云IOT)

一、设计需求 【1】 项目背景 社会经济的飞速发展与城市化进程的加速,城市市民家庭的封闭化和人口老龄化的情况日益突出,基于人们的情感寄托与休闲消费的需要,中国的宠物产业也悄然兴起。家庭宠物的饲养成为了城市居民生活消遣的新方式。宠物的喂养和看护往往是宠物主人最…...

2023年上半年软考分数线 软考分数线公布时间

2023年上半年软考分数线&#xff1a; 全国标准为45分&#xff0c;部分地区会有省考分数线。 计算机软考的及格分数线并不是固定的&#xff0c;就像2016年上半年中级信息系统管理工程师考试&#xff0c;上午的基础知识科目及格标准是45分&#xff0c;下午的应用技术科目及格标…...

centos7的flink安装过程

安装步骤 下载flink的tar.gz包修改flink的conf配置下载需要的lib包 具体代码&#xff08;以flink1.15为例&#xff09; # 下载flink的tar.gz包 wget https://archive.apache.org/dist/flink/flink-1.15.4/flink-1.15.4-bin-scala_2.12.tgz tar -zxvf flink-1.15.4-bin-scala…...

商城-学习整理-高级-性能压测缓存问题(十一)

目录 一、基本介绍1、性能指标2、JMeter1、JMeter 安装2、JMeter 压测示例1、添加线程组2、添加 HTTP 请求3、添加监听器4、启动压测&查看分析结果 3、JMeter Address Already in use 错误解决 二、性能监控1、jvm 内存模型2、堆3、jconsole 与 jvisualvm1、jvisualvm 能干…...

PHP 三元 !empty 而不是评估为真或假 可用isset()

是否可以使用速记三元来检查变量是否已设置&#xff0c;而不是是否计算结果为零或非零&#xff1f; 例如&#xff0c;我试过&#xff1a; $var 0; echo (string) $var ?: (string) false ?: 2;但由于前两个表达式的计算结果均为“0”或“false”&#xff0c;因此显示为 2。…...

星火大模型 VS FuncGPT(慧函数), 谁更胜一筹?

哈喽&#xff0c;本文即通过相近的试题&#xff0c;看下最近爆火的科大讯飞星火大模型和 FuncGPT&#xff08;慧函数&#xff09;的编码能力有何区别&#xff0c;给大家直观地对比。 开发过程中经常会遇到读取文件内容的情况&#xff0c;需要【判断文件路径是目录还是文件】&am…...

使用 Python 获取 Redis 数据库中的所有键

如果你了解 JSON&#xff0c;就会熟悉 Redis 设计系统。 它使用键值结构和分布式内存方法来实现弹性数据库。 哈希、列表、集合、排序集合、字符串、JSON 和流是 Redis 支持的众多数据结构之一。 这个开源数据库支持不同的语言&#xff0c;包括 Python&#xff0c;如果您正在使…...

多模态融合避坑手册:为什么你的跨模态模型总掉进‘语义鸿沟’?

多模态融合避坑手册&#xff1a;为什么你的跨模态模型总掉进‘语义鸿沟’&#xff1f; 当你兴奋地将精心设计的跨模态模型投入训练&#xff0c;却发现验证集指标像过山车一样剧烈波动时&#xff0c;问题往往出在那些容易被忽视的工程细节里。上周有位工程师向我展示了他的视频…...

3分钟零基础入门:GPU加速MediaPipe TouchDesigner插件完整指南

3分钟零基础入门&#xff1a;GPU加速MediaPipe TouchDesigner插件完整指南 【免费下载链接】mediapipe-touchdesigner GPU Accelerated MediaPipe Plugin for TouchDesigner 项目地址: https://gitcode.com/gh_mirrors/me/mediapipe-touchdesigner 你是否曾想过在TouchD…...

服装打版辅助新思路:Nano-Banana软萌拆拆屋结构化拆解应用

服装打版辅助新思路&#xff1a;Nano-Banana软萌拆拆屋结构化拆解应用 1. 引言&#xff1a;当服装设计遇见“拆解魔法” 想象一下&#xff0c;你是一位服装设计师&#xff0c;面对一件构思精巧的连衣裙&#xff0c;如何向打版师清晰地传达它的内部结构&#xff1f;是画一堆复…...

AI净界-RMBG-1.4入门指南:理解Alpha通道、PNG透明度与导出规范

AI净界-RMBG-1.4入门指南&#xff1a;理解Alpha通道、PNG透明度与导出规范 你是不是也遇到过这样的烦恼&#xff1f;拍了一张不错的照片&#xff0c;想换个背景发朋友圈&#xff0c;或者做电商需要把商品图抠出来&#xff0c;结果发现边缘抠得跟狗啃的一样&#xff0c;头发丝和…...

5个步骤掌握UE4SS:虚幻引擎游戏定制与脚本开发完全指南

5个步骤掌握UE4SS&#xff1a;虚幻引擎游戏定制与脚本开发完全指南 【免费下载链接】RE-UE4SS Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games 项目地址: https://gitcode.com/gh_mirrors/re/RE-UE4SS …...

香农信息熵的5个常见误区:你以为的熵可能不是真正的熵

香农信息熵的5个常见误区&#xff1a;你以为的熵可能不是真正的熵 在机器学习与数据科学领域&#xff0c;香农信息熵&#xff08;Shannon Entropy&#xff09;常被视为衡量数据不确定性的黄金标准。但有趣的是&#xff0c;许多从业者在使用这一概念时&#xff0c;往往陷入一些…...

Windows 11终极优化指南:用Win11Debloat免费提升51%系统性能

Windows 11终极优化指南&#xff1a;用Win11Debloat免费提升51%系统性能 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本&#xff0c;用于从Windows中移除预装的无用软件&#xff0c;禁用遥测&#xff0c;从Windows搜索中移除Bing&#xff0c;以及执行各种其他更改以简…...

Electron-builder打包Windows应用,我踩过的三个坑(附详细解决方案)

Electron-builder打包Windows应用&#xff1a;三个典型问题的深度解析与实战解决方案 第一次使用electron-builder打包Windows应用时&#xff0c;那种期待与焦虑交织的感觉至今记忆犹新。作为一个从Web前端转向桌面应用开发的程序员&#xff0c;我本以为有了Electron这个跨平台…...

【全场景优化】WaveTools鸣潮性能调校指南:从卡顿到流畅的完整解决方案

【全场景优化】WaveTools鸣潮性能调校指南&#xff1a;从卡顿到流畅的完整解决方案 【免费下载链接】WaveTools &#x1f9f0;鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 问题定位&#xff1a;硬件与软件的兼容性挑战 当代游戏性能优化面临的核…...

微信聊天记录永久保存:WeChatExporter开源工具全流程指南

微信聊天记录永久保存&#xff1a;WeChatExporter开源工具全流程指南 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 问题&#xff1a;数据丢失的三重警示 2023年某科技…...