【MySQL】语言连接
语言连接
- 一、下载
- 二、mysql_get_client_info
- 1、函数
- 2、介绍
- 3、示例
- 三、其他函数
- 1、mysql_init
- 2、mysql_real_connect
- 3、mysql_query
- 4、mysql_store_result
- 5、mysql_free_result
- 6、mysql_num_fields
- 7、mysql_num_rows
- 8、mysql_fetch_fields
- 9、mysql_fetch_row
- 10、mysql_close
- 四、示例
一、下载
sudo apt install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev
二、mysql_get_client_info
1、函数
2、介绍
- mysql_get_client_info 是一个用于获取 MySQL 客户端库版本信息的函数。它返回一个指向以 null 结尾的字符串,该字符串表示 MySQL 客户端库的版本。
3、示例
- 尝试链接mysql client
#include <iostream>
#include <mysql/mysql.h>int main()
{std::cout << "mysql版本: " << mysql_get_client_info() << std::endl;return 0;
}
g++ test.cc -l mysqlclient
三、其他函数
1、mysql_init
- mysql_init 是 MySQL C API 中的一个函数,它的主要功能是分配或初始化一个 MYSQL 对象,使其适用于后续的 mysql_real_connect 函数来建立与 MySQL 数据库的连接。它是建立数据库连接的第一步。
- 参数mysql是一个指向 MYSQL 结构的指针。如果传递 NULL,mysql_init 将分配并初始化一个新的 MYSQL 结构;如果不为 NULL,则该函数将初始化已存在的 MYSQL 结构。
- 成功时,返回一个指向已初始化 MYSQL 结构的指针。失败时,返回 NULL。失败的原因通常是因为内存不足,无法分配新的 MYSQL 结构。
2、mysql_real_connect
- mysql_real_connect 用于建立一个到 MySQL 数据库服务器的连接。在调用 mysql_real_connect 之前,必须调用 mysql_init 来初始化 MYSQL 结构。
参数 | 说明 |
---|---|
mysql | 一个指向 MYSQL 结构的指针,该结构在调用 mysql_init 后被初始化 |
host | MySQL 服务器的主机名或 IP 地址。如果为 NULL 或字符串 “localhost”,则假定为到本地主机的连接 |
user | 用于登录数据库的用户名。如果为 NULL,则假定为当前用户 |
passwd | 用户密码。如果为 NULL,则仅对该用户的(拥有空密码字段的)用户表中的条目进行匹配检查 |
db | 数据库名称。如果指定,连接后将选择这个数据库 |
port | MySQL 服务器的端口号。如果为 0,则使用默认端口(通常是 3306) |
unix_socket | 用于连接的 Unix 域套接字或管道的路径。如果为 NULL,则不使用 Unix 套接字 |
client_flag | 用于设置客户端标志的位字段。通常设置为 0,但也可以设置为特定功能的组合 |
3、mysql_query
- mysql_query 用于在已经建立的数据库连接上执行 SQL 语句。成功时,返回 0。失败时,返回非 0 值。
参数 | 说明 |
---|---|
mysql | 一个指向已经通过 mysql_real_connect 或类似函数成功连接到 MySQL 服务器的 MYSQL 结构体的指针 |
stmt_str | 要执行的 SQL 语句的字符串。这个字符串应该是一个以空字符 (‘\0’) 结尾的 C 字符串 |
4、mysql_store_result
- mysql_store_result 用于检索由 mysql_query 执行的 SELECT 语句的结果集,并将其存储在 MYSQL_RES 结构中,以便后续逐行处理。使用完后需要调用mysql_free_result来释放与之关联的内存资源,以避免内存泄漏。
- 成功时,返回一个指向 MYSQL_RES 结构体的指针,该结构体包含了结果集的数据。失败时,返回 NULL。
5、mysql_free_result
- mysql_free_result 用于释放由 mysql_store_result 或类似函数返回的结果集所占用的内存。
6、mysql_num_fields
- mysql_num_fields 用于获取由 mysql_store_result 或 mysql_use_result 返回的结果集中的字段(列)数量。即函数返回一个无符号整数,表示结果集中的字段数量。
7、mysql_num_rows
- mysql_num_rows 用于获取由 mysql_store_result 返回的结果集中的行数。即函数返回值表示结果集中的行数。如果结果集为空或检索结果集时发生错误,返回值可能是 0。
8、mysql_fetch_fields
- mysql_fetch_fields 用于从由 mysql_store_result 返回的结果集中检索所有字段(列)的信息。这个函数返回一个指向 MYSQL_FIELD 结构体数组的指针,其中每个结构体都包含了结果集中一个字段的详细信息。
- 如果结果集为空或发生错误,返回值可能是 NULL。但通常,只要 mysql_store_result 成功返回了一个结果集,mysql_fetch_fields 就会返回一个有效的指针。
9、mysql_fetch_row
- mysql_fetch_row 用于从由 mysql_store_result 或 mysql_use_result 返回的结果集中逐行检索数据。
- 每次调用 mysql_fetch_row 时,它都会返回结果集中的下一行数据,直到没有更多行时返回 NULL。
10、mysql_close
- mysql_close 用于关闭先前使用 mysql_init 初始化的数据库连接。在应用程序完成对数据库的操作后,应该调用此函数来释放与连接相关的资源,并确保与 MySQL 服务器的连接被正确关闭。
四、示例
- 创建用户,数据库。方便测试
create database conn;
create user connector@localhost identified by '123456';
grant all on conn.* to connector@localhost;use conn;create table user(
id int primary key auto_increment,
name varchar(12)
);
- C++代码
#include <iostream>
#include <string>
#include <mysql/mysql.h>const char *host = "localhost";
const char *user = "connector";
const char *passwd = "123456";
const char *db = "conn";
unsigned int port = 3306;int main()
{// std::cout << "mysql版本: " << mysql_get_client_info() << std::endl;MYSQL* ml = mysql_init(nullptr);if(ml == nullptr){std::cerr << "mysql_init error" << std::endl;return 1;}if(!mysql_real_connect(ml, host, user, passwd, db, port, nullptr, 0)){std::cerr << "mysql_real_connect error" << std::endl;return 2;}std::cout << "mysql_init and mysql_real_connect success" << std::endl;// std::string query = "insert into user (name) values ('snow')";// std::string query = "insert into user (name) values ('dragon')";// std::string query = "delete from user where name='snow'";std::string query = "select * from user";int n = mysql_query(ml, query.c_str());if(n == 0)std::cout << query << " : success" << std::endl;else{std::cerr << query << " : error" << std::endl;return 3;}MYSQL_RES* res = mysql_store_result(ml);if(res == nullptr){std::cout << "mysql_store_result: the statement did not return a result set or an error occurred" << std::endl;return 4;}int rowsNum = mysql_num_rows(res);int fieldsNum = mysql_num_fields(res);std::cout << "rowsNum: " << rowsNum << ", fieldsNum: " << fieldsNum <<std::endl;MYSQL_FIELD* field = mysql_fetch_fields(res);for(int i = 0; i < fieldsNum; ++i)std::cout << field[i].name << "\t";std::cout << "\n";MYSQL_ROW row;while(row = mysql_fetch_row(res)){for(int i = 0; i < fieldsNum; ++i)std::cout << row[i] << "\t";std::cout << "\n";}mysql_free_result(res);mysql_close(ml);return 0;
}
- 运行结果,在最后我进行了snow的插入,所以结果如下。
本文到这里就结束了,如有错误或者不清楚的地方欢迎评论或者私信
本文只是在学习过程中所做的总结,不会涉及过深的概念
创作不易,如果觉得博主写得不错,请点赞、收藏加关注支持一下💕💕💕
相关文章:
【MySQL】语言连接
语言连接 一、下载二、mysql_get_client_info1、函数2、介绍3、示例 三、其他函数1、mysql_init2、mysql_real_connect3、mysql_query4、mysql_store_result5、mysql_free_result6、mysql_num_fields7、mysql_num_rows8、mysql_fetch_fields9、mysql_fetch_row10、mysql_close …...
【零拷贝】
目录 一:了解IO基础概念 二:数据流动的层次结构 三:零拷贝 1.传统IO文件读写 2.mmap 零拷贝技术 3.sendFile 零拷贝技术 一:了解IO基础概念 理解CPU拷贝和DMA拷贝 我们知道,操作系统对于内存空间&…...
四、GPIO中断实现按键功能
4.1 GPIO简介 输入输出(I/O)是一个非常重要的概念。I/O泛指所有类型的输入输出端口,包括单向的端口如逻辑门电路的输入输出管脚和双向的GPIO端口。而GPIO(General-Purpose Input/Output)则是一个常见的术语,…...
qt-Quick3D笔记之官方例程Runtimeloader Example运行笔记
qt-Quick3D笔记之官方例程Runtimeloader Example运行笔记 文章目录 qt-Quick3D笔记之官方例程Runtimeloader Example运行笔记1.例程运行效果2.例程缩略图3.项目文件列表4.main.qml5.main.cpp6.CMakeLists.txt 1.例程运行效果 运行该项目需要自己准备一个模型文件 2.例程缩略图…...
IM 即时通讯系统-01-概览
前言 有时候希望有一个 IM 工具,比如日常聊天,或者接受报警信息。 其实主要是工作使用,如果是接收报警等场景,其实DD这种比较符合场景。 那么有没有必要再创造一个DD呢? 答案是如果处于个人的私有化使用࿰…...
二叉树——429,515,116
今天继续做关于二叉树层序遍历的相关题目,一共有三道题,思路都借鉴于最基础的二叉树的层序遍历。 LeetCode429.N叉树的层序遍历 这道题不再是二叉树了,变成了N叉树,也就是该树每一个节点的子节点数量不确定,可能为2&a…...
Baklib构建高效协同的基于云的内容中台解决方案
内容概要 随着云计算技术的飞速发展,内容管理的方式也在不断演变。企业面临着如何在数字化转型过程中高效管理和协同处理内容的新挑战。为应对这些挑战,引入基于云的内容中台解决方案显得尤为重要。 Baklib作为创新型解决方案提供商,致力于…...
MP4基础
一、什么是MP4? MP4是一套用于音频、视频信息的压缩编码标准,由国际标准化组织(ISO)和国际电工委员会(IEC)下属的“动态图像专家组”(Moving Picture Experts Group,即MPEGÿ…...
年化18%-39.3%的策略集 | backtrader通过xtquant连接qmt实战
原创内容第785篇,专注量化投资、个人成长与财富自由。 大年初五,年很快就过完了。 其实就是本身也只是休假一周,但是我们赋予了它太多意义。 周五咱们发布发aitrader v4.1,带了backtraderctp期货的实盘接口: aitra…...
通过Redisson构建延时队列并实现注解式消费
目录 一、序言二、延迟队列实现1、Redisson延时消息监听注解和消息体2、Redisson延时消息发布器3、Redisson延时消息监听处理器 三、测试用例四、结语 一、序言 两个月前接了一个4万的私活,做一个线上商城小程序,在交易过程中不可避免的一个问题就是用户…...
RAG是否被取代(缓存增强生成-CAG)吗?
引言: 本文深入研究一种名为缓存增强生成(CAG)的新技术如何工作并减少/消除检索增强生成(RAG)弱点和瓶颈。 LLMs 可以根据输入给他的信息给出对应的输出,但是这样的工作方式很快就不能满足应用的需要: 因…...
MiniMax:人工智能领域的创新先锋
MiniMax:人工智能领域的创新先锋 在人工智能领域,MiniMax正以其强大的技术实力和创新的模型架构,成为全球关注的焦点。作为一家成立于2021年12月的通用人工智能科技公司,MiniMax专注于开发多模态、万亿参数的MoE(Mixt…...
pytorch基于GloVe实现的词嵌入
PyTorch 实现 GloVe(Global Vectors for Word Representation) 的完整代码,使用 中文语料 进行训练,包括 共现矩阵构建、模型定义、训练和测试。 1. GloVe 介绍 基于词的共现信息(不像 Word2Vec 使用滑动窗口预测&…...
Unity实现按键设置功能代码
一、前言 最近在学习unity2D,想做一个横版过关游戏,需要按键设置功能,让用户可以自定义方向键与攻击键等。 自己写了一个,总结如下。 二、界面效果图 这个是一个csv文件,准备第一列是中文按键说明,第二列…...
C++ 入门速通-第3章【黑马】
内容来源于:黑马 集成开发环境:CLion 先前学习完了C第1章的内容: C 入门速通-第1章【黑马】-CSDN博客 C 入门速通-第2章【黑马】-CSDN博客 下面继续学习第3章: 数组: 字符数组: 多维数组: …...
JavaScript 中的 CSS 与页面响应式设计
JavaScript 中的 CSS 与页面响应式设计 JavaScript 中的 CSS 与页面响应式设计1. 引言2. JavaScript 与 CSS 的基本概念2.1 CSS 的作用2.2 JavaScript 的作用3. 动态控制样式:JavaScript 修改 CSS 的方法3.1 使用 `document.styleSheets` API3.2 使用 `classList` 修改类3.3 使…...
100.3 AI量化面试题:解释配对交易(Pairs Trading)的原理,并说明如何选择配对股票以及设计交易信号
目录 0. 承前1. 配对交易基本原理1.1 什么是配对交易1.2 基本假设 2. 配对选择方法2.1 相关性分析2.2 协整性检验 3. 价差计算方法3.1 简单价格比率3.2 回归系数法 4. 交易信号设计4.1 标准差方法4.2 动态阈值方法 5. 风险管理5.1 止损设计5.2 仓位管理 6. 策略评估6.1 回测框架…...
[SAP ABAP] Debug Skill
SAP ABAP Debug相关资料 [SAP ABAP] DEBUG ABAP程序中的循环语句 [SAP ABAP] 静态断点的使用 [SAP ABAP] 在ABAP Debugger调试器中设置断点 [SAP ABAP] SE11 / SE16N 修改标准表(慎用)...
WSL2中安装的ubuntu开启与关闭探讨
1. PC开机后,查询wsl状态 在cmd或者powersell中输入 wsl -l -vNAME STATE VERSION * Ubuntu Stopped 22. 从windows访问WSL2 wsl -l -vNAME STATE VERSION * Ubuntu Stopped 23. 在ubuntu中打开一个工作区后…...
走向基于大语言模型的新一代推荐系统:综述与展望
HightLight 论文题目:Towards Next-Generation LLM-based Recommender Systems: A Survey and Beyond作者机构:吉林大学、香港理工大学、悉尼科技大学、Meta AI论文地址: https://arxiv.org/abs/2410.1974 基于大语言模型的下一代推荐系统&…...
【深度分析】DeepSeek 遭暴力破解,攻击 IP 均来自美国,造成影响有多大?有哪些好的防御措施?
技术铁幕下的暗战:当算力博弈演变为代码战争 一场针对中国AI独角兽的全球首例国家级密码爆破,揭开了数字时代技术博弈的残酷真相。DeepSeek服务器日志中持续跳动的美国IP地址,不仅是网络攻击的地理坐标,更是技术霸权对新兴挑战者的…...
双指针算法思想——OJ例题扩展算法解析思路
大家好!上一期我发布了关于双指针的OJ平台上的典型例题思路解析,基于上一期的内容,我们这一期从其中内容扩展出来相似例题进行剖析和运用,一起来试一下吧! 目录 一、 基于移动零的举一反三 题一:27. 移除…...
初始Linux(7):认识进程(下)
1. 进程优先级 cpu 资源分配的先后顺序,就是指进程的优先权( priority )。 优先权高的进程有优先执行权利。配置进程优先权对多任务环境的 linux 很有用,可以改善系统性能。 还可以把进程运行到指定的CPU 上,这样一来…...
人工智能第2章-知识点与学习笔记
结合教材2.1节,阐述什么是知识、知识的特性,以及知识的表示。人工智能最早应用的两种逻辑是什么?阐述你对这两种逻辑表示的内涵理解。什么谓词,什么是谓词逻辑,什么是谓词公式。谈谈你对谓词逻辑中的量词的理解。阐述谓词公式的解…...
Kotlin 协程 与 Java 虚拟线程对比测试(娱乐性质,请勿严谨看待本次测试)
起因 昨天在群里聊到虚拟线程的执行效率问题的时候虽然最后的结论是虚拟线程在针对IO密集型任务时具有很大的优势。但是讨论到虚拟线程和Kotlin 的协程的优势对比的话,这时候所有人都沉默了。所以有了本次的测试 提前声明:本次测试是不严谨的࿰…...
C++中的拷贝构造器(Copy Constructor)
在C中,拷贝构造器(Copy Constructor)是一种特殊的构造函数,用于创建一个新对象,该对象是另一个同类型对象的副本。当使用一个已存在的对象来初始化一个新对象时,拷贝构造器会被调用。 拷贝构造器的定义 拷…...
Spring Boot项目如何使用MyBatis实现分页查询
写在前面:大家好!我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正,感谢大家的不吝赐教。我的唯一博客更新地址是:https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油,冲鸭&#x…...
独立开发经验谈:如何借助 AI 辅助产品 UI 设计
我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统。陆陆续续开发了几年,从一开始的偶有用户尝试,到如今线上环境和私有化部署均有了越来越多的稳定用户,在这个过程中,我也积累了不少如何开发运营一款独…...
笔灵ai写作技术浅析(三):深度学习
笔灵AI写作的深度学习技术主要基于Transformer架构,尤其是GPT(Generative Pre-trained Transformer)系列模型。 1. Transformer架构 Transformer架构由Vaswani等人在2017年提出,是GPT系列模型的基础。它摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN),完全依赖自…...
https数字签名手动验签
以bing.com 为例 1. CA 层级的基本概念 CA 层级是一种树状结构,由多个层级的 CA 组成。每个 CA 负责为其下一层级的实体(如子 CA 或终端实体)颁发证书。层级结构的顶端是 根 CA(Root CA),它是整个 PKI 体…...
为什么LabVIEW适合软硬件结合的项目?
LabVIEW是一种基于图形化编程的开发平台,广泛应用于软硬件结合的项目中。其强大的硬件接口支持、实时数据采集能力、并行处理能力和直观的用户界面,使得它成为工业控制、仪器仪表、自动化测试等领域中软硬件系统集成的理想选择。LabVIEW的设计哲学强调模…...
C# 操作符重载对象详解
.NET学习资料 .NET学习资料 .NET学习资料 一、操作符重载的概念 在 C# 中,操作符重载允许我们为自定义的类或结构体定义操作符的行为。通常,我们熟悉的操作符,如加法()、减法(-)、乘法&#…...
git:恢复纯版本库
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
java异常处理——try catch finally
单个异常处理 1.当try里的代码发生了catch里指定类型的异常之后,才会执行catch里的代码,程序正常执行到结尾 2.如果try里的代码发生了非catch指定类型的异常,则会强制停止程序,报错 3.finally修饰的代码一定会执行,除…...
【架构面试】二、消息队列和MySQL和Redis
MQ MQ消息中间件 问题引出与MQ作用 常见面试问题:面试官常针对项目中使用MQ技术的候选人提问,如如何确保消息不丢失,该问题可考察候选人技术能力。MQ应用场景及作用:以京东系统下单扣减京豆为例,MQ用于交易服和京豆服…...
A4988一款常用的步进电机驱动芯片
A4988 是一款常用的步进电机驱动芯片,广泛应用于 3D 打印机、CNC 机床和小型自动化设备中。它可以驱动多种类型的步进电机,但需要根据电机的参数(如电压、电流、相数等)进行合理配置。 一、A4988 的主要特性 驱动能力:…...
TypeScript语言的语法糖
TypeScript语言的语法糖 TypeScript作为一种由微软开发的开源编程语言,它在JavaScript的基础上添加了一些强类型的特性,使得开发者能够更好地进行大型应用程序的构建和维护。在TypeScript中,不仅包含了静态类型、接口、枚举等强大的特性&…...
A星算法两元障碍物矩阵转化为rrt算法四元障碍物矩阵
对于a星算法obstacle所表示的障碍物障碍物信息,每行表示一个障碍物的坐标,例如2 , 3; % 第一个障碍物在第二行第三列,也就是边长为1的正方形障碍物右上角横坐标是2,纵坐标为3,障碍物的宽度和高度始终为1.在rrt路径规划…...
什么情况下,C#需要手动进行资源分配和释放?什么又是非托管资源?
扩展:如何使用C#的using语句释放资源?什么是IDisposable接口?与垃圾回收有什么关系?-CSDN博客 托管资源的回收有GC自动触发,而非托管资源需要手动释放。 在 C# 中,非托管资源是指那些不由 CLR(…...
【最长上升子序列Ⅱ——树状数组,二分+DP,纯DP】
题目 代码(只给出树状数组的) #include <bits/stdc.h> using namespace std; const int N 1e510; int n, m; int a[N], b[N], f[N], tr[N]; //f[i]表示以a[i]为尾的LIS的最大长度 void init() {sort(b1, bn1);m unique(b1, bn1) - b - 1;for(in…...
day37|完全背包基础+leetcode 518.零钱兑换II ,377.组合总和II
完全背包理论基础 完全背包与01背包的不同在于01背包的不同物品每个都只可以使用一次,但是完全背包的不同物品可以使用无数次 在01背包理论基础中,为了使得物品只被使用一次,我们采取倒序遍历来控制 回顾:>> for(int j …...
【VM】VirtualBox安装ubuntu22.04虚拟机
阅读本文之前,请先根据 安装virtualbox 教程安装virtulbox虚拟机软件。 1.下载Ubuntu系统镜像 打开阿里云的镜像站点:https://developer.aliyun.com/mirror/ 找到如图所示位置,选择Ubuntu 22.04.3(destop-amd64)系统 Ubuntu 22.04.3(desto…...
Qt事件处理:理解处理器、过滤器与事件系统
1. 事件 事件 是一个描述应用程序中、发生的某些事情的对象。 在 Qt 中,所有事件都继承自 QEvent ,并且每个事件都有特定的标识符,如:Qt::MouseButtonPress 代表鼠标按下事件。 每个事件对象包含该事件的所有相关信息ÿ…...
DeepSeek 云端部署,释放无限 AI 潜力!
1.简介 目前,OpenAI、Anthropic、Google 等公司的大型语言模型(LLM)已广泛应用于商业和私人领域。自 ChatGPT 推出以来,与 AI 的对话变得司空见惯,对我而言没有 LLM 几乎无法工作。 国产模型「DeepSeek-R1」的性能与…...
【论文复现】基于Otsu方法的多阈值图像分割改进鲸鱼优化算法
目录 1.摘要2.鲸鱼优化算法WOA原理3.改进策略4.结果展示5.参考文献6.代码获取 1.摘要 本文提出了一种基于Otsu方法的多阈值图像分割改进鲸鱼优化算法(RAV-WOA)。RAV-WOA算法能够在分割灰度图像和彩色图像时,自动选择最优阈值,并确…...
Hive之数据定义DDL
Hive之数据定义DDL 文章目录 Hive之数据定义DDL写在前面创建数据库查询数据库显示数据库查看数据库详情切换当前数据库 修改数据库删除数据库创建表管理表(内部表)外部表管理表与外部表的互相转换 修改表重命名表增加、修改和删除表分区增加/修改/替换列信息 删除表 写在前面 …...
Golang 应用的 Docker 部署方式介绍及使用详解
本文将介绍如何使用 Docker 部署一个基于 Go 语言的后台服务应用 godco,并介绍如何配置 MongoDB 数据库容器的连接,确保应用能够成功启动并连接到容器方式部署的mongoDB数据库。 前提条件 1.已安装 Docker/Podman 2.已安装 MongoDB 数据库容器ÿ…...
SuccessFactors OData OAuth with SAP IAS-generated SAML assertion
导读 IAS:一句话说明白。SAP相关的系统可以通过IAS登录,只要IAS登录,其他系统免密登录。 作者:vivi,来源:osinnovation 上图有三个角色:brower,就是自己的浏览器,sp就是我们的目标…...
vue入门到实战 三
目录 3.1 v-bind 3.1.1 v-bind指令用法 编辑3.1.2 使用v-bind绑定class 3.1.3 使用v-bind绑定style 3.2.1 v-if指令 3.2.1 v-if指令 3.2.2 v-show指令 3.3 列表渲染指令v-for 3.3.1 基本用法 3.3.2 数组更新 3.3.3 过滤与排序 3.4 事件处理 3.4.1 使用v-on指令…...
音视频入门基础:RTP专题(7)——RTP协议简介
一、引言 本文对RTP协议进行简介。在简介之前,请各位先下载RTP的官方文档《RFC 3550》。该文档总共有89页,本文下面所说的“页数”是指在pdf阅读器中显示的页数: 二、RTP协议简介 根据《RFC 3550》第5页,实时传输协议(…...