网络编程(五)

本文详细介绍网络编程中套接字的基本操作,如查询套接字接收缓冲区大小及使用Unix域套接字的方法。此外,还介绍了关系型数据库与非关系型数据库的区别,并提供了SQLite数据库的基础操作教程,包括表的创建、记录的增删改查等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 查询套接字接收缓冲区大小
int recvbuflen;
int len = sizeof(int);
getsockopt(sock_fd,SOL_SOCKET,SO_RCVBUF,&recvbuflen,&len);
printf("recvbuflen: %d\n",recvbuflen);


2.unix域套接字
套接字地址结构不同
创建套接字的时候使用的是AF_UNX //AF_UNIX=PF_UNIX=AF_LOCAL=PF_LOCAL


3.数据库:下面几种都是关系型数据库
大型数据库:oracle  db2
中型数据库:sqlserver  mysql
小型微型数据库:sqlite


在互联网比较流行的非关系型数据库:redis mongodb


数据库---> 多个表 ---> 多条记录 --->多个字段



4.掌握基本的数据库操作

sqlite3基本操作:

.tables //显示表

.schema//显示所有表的详情信息

.q(.exit) //退出


#sqlite3 mydb  记住后面一定要有个文件名
create table st(字段名 类型, 字段名 类型); 创建表
create table st(age integer,name text);
delete from st ;  删除记录
delete from st where age<25;
insert into st values(38,"wang11"); 插入

drop table st; 删除表

select * from st;子查询
update st set age=30 where name="wang"; //更新表
alter table st add column grade integer; //添加字段

create table st(name text primary key,id text);//创建主键,唯一的标识一行

代码中这样封装sql语句:
sprintf(buf,"select * from st where name = '%s' and passwd = '%s'",name,passwd);

项目:

在线英语词典翻译

功能描述:客户端通过命令调用服务器的相应服务
注册:客户端需要注册一个新用户  新的用户数据放到sqlite数据库
用户登陆:服务器接收到客户端的登录请求,到数据库中查询该用户是否存在,并返回结果
查询单词:客户端传一个单词给服务器,服务器到文件中去查询这个单词
查询到的单词要保存到数据库中
查询历史:以前查询了那些单词,返回给客户端
需要两个表:
用户表user:哪些用户可以使用服务器
历史记录表record:保存查询了那些单词  (选择做)

server:
注册用户:通信的结构体采用MSG,将用户数据插入到表user中
用户登陆: 收到MSG,服务器根据MSG中的用户信息到标中查询
 将查询结果返回给客户端
查询单词:用户登陆成功后才能做
服务器到文件中去查询,查询的结果返回给用户
查询成功,将查询的单词加到表record中
查询历史:到表record中去查询该用户查询了那些单词  (选择做)
查询的结果返回给客户端


client:
注册用户:从终端输入用户名和密码,将MSG传给服务器
用户登陆:用户输入用户名和密码给服务器,获取服务器返回的结果
查询单词:从终端输入单词,发送MSG给服务器,服务器返回一个结果
查询历史:传送MSG给服务器,服务器返回一个结果,客户端直接打印出来 (选择做)



 #define  R  1   //  user register
 #define  L  2   //  user login
 #define  Q  3   //  query word
 #define  H  4   //  history record  (选择做)




typedef struct 
 {
     int type;
     char name[N];
     char data[256];   // password or word
 } MSG;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值