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

嵌入式学习33-网络通信

网络:
      数据传输,数据共享

1.网络协议模型:
    OSI协议模型                  7
        应用层              实际发送的数据
        表示层              发送的数据是否加密
        会话层              是否建立会话连接


        传输层              数据传输的方式(数据报、流式)
        网络层              数据的路由(如何从一个局域网到达另一个局域网)        IP地址
        数据链路层        局域网下如何通信
        物理层              物理介质的连接

    TCP/IP协议模型           4
        应用层              传输的数据
        传输层              传输的方式
        网络层              数据如何从一台主机到达另一台主机
        网络接口层          物理介质的连接

    应用层:
        HTTP    超文本传输协议
        HTTPS    加密

 
        FTP     文件传输协议
        TFTP    简单文本传输协议


        SMTP    邮件传输协议
        MQTT    
        TELNET  
        ..
    
    传输层:
        UDP     用户 数据报  协议
                特点:
                    1.实现机制简单
                    2.资源   开销小
                    3.不安全不可靠

        TCP     传输控制  协议
                特点:
                    1.实现机制 复杂              3次握手 4次挥手
                    2.资源  开销大
                    3.安全  可靠

    网络层:
        IPv4

        IP地址:                                                                                                                                                           唯一标识网络中一台主机的标号
        IP地址:                                                                                                                                                             网络位 + 主机位                                                 192.168.   1.171
        子网掩码:                                                                                                                                                             用来标识IP地址的网络位主机位                 

        255.255.255.0

                                   共32位      前24位为局域网IP     后8位为自身主机IP                                                                                                                                   
                子网掩码是  的部分表示  IP地址  的  网络位
                子网掩码是  0  的部分表示  IP地址  的  主机位
        网段号:                                                                                                                                                            网络位不变,主机位全为0,  表示  网段号
        广播地址:                                                                                                                                                           网络位不变,主机位全为1,表示 广播地址

        IP地址类型:
        A类
            1.0.0.0 - 126.255.255.255
            子网掩码:                                                                                                                                                           255.0.0.0
                                                     管理超大规模网络
            10.0.0.0 - 10.255.255.255 

        B类
            128.0.0.0 - 191.255.255.255
            子网掩码:                                                                                                                                                           255.255.0.0 
                                                      管理大中规模型网络
            172.16.0.0 - 172.31.255.255

        C类
            192.0.0.0 - 223.255.255.255
            子网掩码:                                                                                                                                                           255.255.255.0
                                                       管理中小规模型网络 
            192.168.0.0 - 192.168.255.255

        D类
               224.0.0.0 - 239.0.0.0
                                                          用于组播

        E类
            240.0.0.0 - 255.255.255.255 
                                                           用于实验

2.UDP编程
    socket套接字编程:
    1.发端:
        socket 
        int socket(int domain, int type, int protocol);
        功能:
            创建一个用来  通信 文件描述符
        参数:
            domain:                                                                                                                                                           使用的协议族 AF_INET (IPv4协议族)
            type:  套接字类型
                SOCK_STREAM:                                                                                                                                                             流式    套接字
                SOCK_DGRAM:                                                                                                                                                            数据报   套接字            (UDP)
                      SOCK_RAW:                                                                                                                                                             原始     套接字
            protocol:协议
                         默认为0 
        返回值:
            成功  返回  文件描述符
            失败返回-1 

        sendto 
        ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
                      const struct sockaddr *dest_addr, socklen_t addrlen);
        功能:
               利用  套接字  向  指定地址  发送 数据信息 
        参数:
            sockfd:                                                                                                                                                           套接字文件描述符
            buf:                                                                                                                                                              发送数据空间首地址
            len:                                                                                                                                                                发送数据的长度
            flags:                                                                                                                                                           属性默认为0 
            dest_addr:                                                                                                                                                           目的地址信息存放的空间首 地址
            addrlen:                                                                                                                                                           目的地址 的 长度
        
        struct sockaddr_in {
            sa_family_t    sin_family; /* address family: AF_INET */
            in_port_t      sin_port;   /* port in network byte order */
            struct in_addr sin_addr;   /* internet address */
        };

        /* Internet address. */
        struct in_addr {
            uint32_t       s_addr;     /* address in network byte order */
        };
                  
        返回值:
            成功  返回  实际发送字节数
            失败  返回-1 

        inet_addr:
        in_addr_t inet_addr(const char *cp);
        功能:  
            将 字符串 IP地址转换为 内存 中的IP地址 

        htons
        uint16_t htons(uint16_t hostshort);
        功能:       8080                                    50000
            将 本地字节序 转换为网络的  大端字节序  (>10000)
                     小端


ssize_和size_t区别

                      ssize_t有符号整型,在32位机器上等同与int,在64位机器上等同与long int,有没有注意到,它和long数据类型有啥区别?其实就是一样的。

                     size_t 就是无符号型的ssize_t,也就是    unsigned long/ unsigned int   (在32位下),不同的编译器或系统可能会有区别,主要是因为在32位机器上int和long是一样的。

在64位没有测试,但是参见百度百科,size_t 在64位下是64位,那么size_t的正确定义应该是typedef unsigned long size_t

相关文章:

嵌入式学习33-网络通信

网络: 数据传输,数据共享 1.网络协议模型: OSI协议模型 7 应用层 实际发送的数据 表示层 发送的数据是否加密 会话层 是否建立会话连接 传输层 数据传输的方式&…...

FFmepg--内存IO模式

功能: 内存IO模式:avio_alloc_context(): 自定义读写文件方式,打开文件 api // 自定义IO AVIOContext * avio_alloc_context (unsigend char * buffer;int buffer_size;void *opaque;int (*read_packet)(void * opaque, uint8_t * buf,in…...

Android AMS

Android进阶:一口气读完《Android进阶解密》 - 掘金 Android AMS(Activity Manager Service)实现的功能 **管理应用程序的生命周期:**启动、停止、暂停、恢复和销毁应用程序。 **控制应用程序的启动顺序:**确保应用程…...

2024暑期实习八股笔记

文章目录 自我介绍MySQL索引索引种类、B树聚簇索引、非聚簇索引联合索引、最左前缀匹配原则索引下推索引失效索引优化 日志、缓冲池redo log(重做日志)刷盘时机日志文件组 bin log(归档日志)记录格式写入机制 两阶段提交undo log&…...

EDGE 音乐生成的可编辑舞蹈 论文学习笔记

本文不是很严谨,供学习参考,随时更新 EDGE: Editable Dance Generation From Music 音乐生成的可编辑舞蹈 GitHub - Stanford-TML/EDGE: Official PyTorch Implementation of EDGE (CVPR 2023) 1. 我们引入了一种基于扩散的舞蹈生成方法,该…...

laravel 模型多对多,应用

laravel 模型多对多,应用,试卷 跟 区域 多对多关系 一个试卷可以发放到a b c 区域 创建试卷表 CREATE TABLE exams (exam_id int(11) unsigned NOT NULL AUTO_INCREMENT,exam_title varchar(100) NOT NULL DEFAULT COMMENT 标题,created_time int(11…...

嵌入式学习35-网络通信UDP聊天及TCP

题目:基于UDP实现直播间聊天的功能 需求: 软件划分为用户客户端和主播服务端两个软件client.c和server.c 用户客户端负责: 1.接收用户的昵称 2.接收用户输入的信息,能够将信息发送给服务端 3.接收服…...

Python:if条件判断语句

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 内容简介 比较运算符和关系运算符&#xff1a; 本文将介绍Python中常见的比较运算符&#xff0c;如 &#xff08;等于&#xff09;、! 和 <&…...

git 命令怎么回退到某个特定的 commit 并将其推送到远程仓库?

问题 不小心把提交的名称写错提交上远程仓库了&#xff0c;这里应该是 【029】的&#xff0c;这个时候我们想回到【028】这一个提交记录&#xff0c;然后再重新提交【029】到远程仓库&#xff0c;该怎么处理。 解决 1、首先我们找到【028】这条记录的提交 hash&#xff0c;右…...

Python中如何操作数据库?

Python中如何操作数据库&#xff1f; ​​​​​ 在Python中操作数据库通常涉及到使用数据库驱动程序或ORM&#xff08;对象关系映射&#xff09;库。下面是一些常见的步骤和工具&#xff0c;用于在Python中操作数据库&#xff1a; 1. 选择数据库和驱动程序 首先&#xff0c…...

【智能算法】蜻蜓算法(DA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.代码实现4.参考文献 1.背景 2016年&#xff0c;Mirjalili受到蜻蜓静态和动态集群行为启发&#xff0c;提出了蜻蜓算法(Dragonfly algorithm, DA)。 2.算法原理 2.1算法思想 蜻蜓集群有两种行为目的&#xff1a;狩猎&#xf…...

用A*算法求解八数码问题

用A*算法求解八数码问题 实现两种启发函数实现A*算法测试 实现两种启发函数 采取两种策略实现启发函数&#xff1a; 策略1&#xff1a;不在目标位置的数字个数策略2&#xff1a;曼哈顿距离&#xff08;将数字直接移动到对应位置的步数总数&#xff09; # 策略1: 不在目标位置…...

分布式之Ribbon使用以及原理

Ribbon使用以及原理 1、负载均衡的两种方式 服务器端负载均衡 传统的方式前端发送请求会到我们的的nginx上去&#xff0c;nginx作为反向代理&#xff0c;然后路由给后端的服务器&#xff0c;由于负载均衡算法是nginx提供的&#xff0c;而nginx是部署到服务器端的&#xff0c;所…...

android JNI float *转MutableList

data class Test(var data:MutableList<Float> )JNIEXPORT void JNICALL Java_NativeUtils_assignFloatArrayToHealth(JNIEnv *env, jclass clazz, jobject obj, jfloatArray cData) {jclass objClass env->GetObjectClass(obj);// 获取 Test类中的 data 属性jfieldI…...

chatgpt与人类有何不同?

ChatGPT和人类之间存在多个显著的差异。 首先&#xff0c;ChatGPT是一种基于人工智能技术的计算机程序&#xff0c;通过机器学习和自然语言处理等技术&#xff0c;从大量的数据中获取知识并生成语言输出。它主要依赖于算法和数据进行工作&#xff0c;能够迅速处理和检索信息&a…...

论文笔记:Evaluating the Performance of Large Language Models on GAOKAO Benchmark

1 论文思路 采用zero-shot prompting的方式&#xff0c;将试题转化为ChatGPT的输入 对于数学题&#xff0c;将公式转化为latex输入 主观题由专业教师打分 2 数据 2010~2022年&#xff0c;一共13年间的全国A卷和全国B卷 3 结论 3.1 不同模型的zeroshot 高考总分 3.2 各科主…...

MySQL 数据库查询与数据操作:使用 ORDER BY 排序和 DELETE 删除记录

使用 ORDER BY 进行排序 使用 ORDER BY 语句按升序或降序对结果进行排序。 ORDER BY 关键字默认按升序排序。要按降序排序结果&#xff0c;使用 DESC 关键字。 示例按名称按字母顺序排序结果&#xff1a; import mysql.connectormydb mysql.connector.connect(host"l…...

数据结构入门(3)2.链表接口实现

目录 前言 头文件 动态申请一个结点 单链表打印 单链表尾插 单链表的头插 单链表的尾删 单链表头删 单链表查找 单链表在pos位置之后插入x 单链表删除pos位置之后的值 在pos的前面插入 删除pos位置 销毁顺序表 前言 本文将介绍链表常见的功能的实现 头文件 #…...

vscode中解决驱动编写的时候static int __init chrdev_init()报错的问题

目录 错误出错原因解决方法 错误 在入口函数上&#xff0c;出现 expected a ; 这样的提示 出错原因 缺少了 __KERNEL __ 宏定义 解决方法 补上__KERNEL__宏定义 具体做法&#xff1a;在vscode中按下ctrlshiftp &#xff0c;输入&#xff1a;C/C:Edit Configurations&#xff0…...

fastgpt本地详细部署以及配置

目录 一、Docker部署1、docker安装2、docker启动3、添加用户到 docker 组:4、验证 Docker 安装:二、one_api 本地部署1、linux系统部署2、windows系统部署三、向量模型部署(m3e)四、chatglm2模型本地部署五、fastgpt模型本地部署1、下载配置文件2、文件配置--docker-compos…...

AI软件研发成本飙升的真相:3个被忽视的隐性成本源,今天不查明天多烧47%预算!

第一章&#xff1a;AI原生软件研发成本优化实战技巧 2026奇点智能技术大会(https://ml-summit.org) AI原生软件的研发成本常被模型训练开销主导&#xff0c;但实际可观测的浪费更多来自推理服务冗余、提示工程低效、以及缺乏细粒度资源编排。聚焦可落地的降本路径&#xff0c;…...

2025身份证前六位地区代码解析:如何快速查询与使用指南

1. 身份证前六位地区代码的奥秘 每次看到身份证号码前六位数字&#xff0c;你有没有好奇过它们代表什么&#xff1f;这串看似简单的数字其实是行政区划代码&#xff0c;相当于每个地区的"身份证号"。我刚开始研究这个时也一头雾水&#xff0c;直到发现它背后藏着完整…...

AI Agent Harness Engineering 监控与日志系统搭建

AI Agent Harness Engineering 监控与日志系统搭建 副标题:从0到1构建覆盖「决策-工具-对话-资源」全链路的企业级可观测性底座 第一部分:引言与基础 (Introduction & Foundation) 1.1 引人注目的标题 核心关键词 AI Agent Harness Engineering、AI Agent监控、Agent…...

CSS如何控制图片对比度与亮度_使用filter属性进行滤镜处理

最稳妥写法是用包裹容器加 isolation: isolate&#xff1b;contrast() 和 brightness() 参数为数字或百分比&#xff0c;顺序影响效果&#xff0c;建议 brightness→contrast&#xff1b;图片模糊因GPU合成层子像素渲染降级&#xff0c;需偶数尺寸和避免多层滤镜。filter 的 co…...

2026年流媒体视频转文字工具大横评踩完8款坑差距竟然这么大,低调黑马才是真效率天花板

做职场效率博主这三年&#xff0c;我前前后后测过不下20款音视频转文字工具&#xff0c;最近为了做2026年的工具横评&#xff0c;特意把市面上最火的8款都拉出来测了半个月&#xff0c;踩坑踩得我头都大&#xff0c;最后得出来的结论非常明确&#xff1a;听脑AI是同类工具里最值…...

从本地到云端:FastAPI服务器部署的5个必知要点(避坑指南)

从本地到云端&#xff1a;FastAPI服务器部署的5个必知要点&#xff08;避坑指南&#xff09; 当你兴奋地完成了一个FastAPI应用的开发&#xff0c;准备将它从本地环境迁移到云端服务器时&#xff0c;可能会遇到各种意想不到的问题。接口无法访问、性能突然下降、请求超时...这些…...

SpringCloud进阶--Sentinel 流量防卫兵衅

一、项目背景与核心价值 1. 解决的核心痛点 Navicat的数据库连接密码并非明文存储&#xff0c;而是通过AES算法加密后写入.ncx格式的XML配置文件中。一旦用户忘记密码&#xff0c;常规方式只能重新配置连接&#xff0c;效率极低。本项目只作为学习研究使用&#xff0c;不做其他…...

Spring Boot 3.2 集成 Shiro 2.0.1 踩坑实录:从 javax.servlet 到 jakarta.servlet 的完整迁移指南

Spring Boot 3.2 与 Shiro 2.0.1 深度整合实战&#xff1a;跨越 Jakarta EE 的兼容性鸿沟 当我们将项目从 Spring Boot 2.x 升级到 3.2 版本时&#xff0c;许多开发者都会遇到一个令人头疼的问题——原本运行良好的 Shiro 安全框架突然失效了。这背后隐藏着一个更深层次的变革&…...

开源内容访问工具:突破网页内容限制的技术实践指南

开源内容访问工具&#xff1a;突破网页内容限制的技术实践指南 在信息爆炸的数字时代&#xff0c;专业内容与学术资源的获取常常受到付费墙的限制。本文介绍的开源内容访问工具作为一款浏览器扩展&#xff0c;通过技术手段帮助用户合规地访问受限制内容&#xff0c;重新定义信息…...

浙江金华车间酷热难挡?蒸发冷省电空调能否解决降温难题?

浙江金华的夏季&#xff0c;车间内酷热难挡是许多企业面临的难题。高温不仅让员工工作体验变差&#xff0c;还可能影响生产效率。这时&#xff0c;蒸发冷省电空调成为备受关注的解决方案。蒸发冷省电空调的制冷原理有其独特之处。它需要压缩机、制冷剂进行内循环制冷。压缩机作…...