1 广播&组播
广播:发送:socket-->setsockopt(允许广播发送)-->sendto(广播地址)
-->udp_client.c
接收:socket-->bind-->recvfrom --->udp_server.c
组播:发送:socket-->地址为组播地址-->sendto(组播地址) udp_client.c
接收:socket-->setsockopt(加入组播组)--》bind-->recvfrom
udp_server.c
2 unix域套接字---》socket文件---》用来实现一台主机上两个进程的通信
socket()--->创建socket文件
用TCP服务端/客户端模型和UDP服务端和客户端模型来实现一台主机上两个进程 的通信
2.1 用TCP服务端/客户端模型
服务端:socket--》bind(struct sockaddr_un)-->listen-->accept-- >io函数 tcp_server.c
客户端:socket-->connect-->io函数 tcp_client.c
tcp方式的unix域套接字通信,类似于无名管道,实现双向通信只需要一个文 件(用于两个不相关进程或前后台进程)
2.2 用UDP服务端/客户端模型
服务端:socket-->bind--->IO函数---》udp_server.c
客户端:socket-->bind--->IO函数--->udp_client.c
udp方式的unix域套接字通信,类似于有名管道,实现双向通信需要两个文 件
unlink("hehe")-->删除已经存在的套接字文件
day5:数据库
1 数据库---》存放数据
定义:是指以同一组织方式将相关的数据组织在一起,并存放在PC存储器 上的供多个用户共享使用的文件,与应用程序彼此独立,是一组相关数据的 集合。用户可以通过通用指令(sql语句)提取查看数据。
嵌入式系统中常见的数据库:sqlite mysql
sqlite:小型的嵌入式关系型数据库---》2W+
特点:源码开放 代码精简 免安装 支持SQL语句
struct sqlite3 gdb ---》描述一个数据库
2 SQL语句--》操作数据库的指令
primary key--->主键约束
a 主键的值必须唯一,用于标识每一条记录,如学生学号
b 主键同时也是一个索引,通过主键查找记录速度较快
c 主键如果是整数类型,该列的值可以自动增长
2.1创建一张表
create table 表名(字段列表 [各种约束])
2.2 插入一项内容
insert into 表名 (字段列表) values (值列表)
2.3查询
select *from 表名----》查询整张表的内容
select *from 表名 where id=1---》条件查询,查找id=1的这条记录
select *from 表名 where age>25 and salary>5000 并且
select *from 表名 where age>25 or salary>5000 或
select *from 表名 where salary in (5000,10000) 查工资等于5000和 10000 的所有记录
2.4 删除
delete from 表名---》删除整张表的记录
delete from 表名 where id=1 条件删除
2.5修改
updata 表名 set 字段名=值 where id=1