基于udp+sqlite3实现的单词查询器(linux系统下)
一、准备工作
我们首先要准备一个单词表,注意必须要是.csv结束的表格
其实里面内容和exsl表格一样
因为我们要使用sqlite3数据库来管理单词表以实现单词查询的功能,所以要把.csv结束的单词表转化为.db结尾的数据库
linux终端输入sqlite3 mydatabase.db进入sqlite3数据库,进行下图操作,把.csv格式的单词表转化为.db的数据库
二、单词代码设计总框架
这个有点大,看下面这个分开代码框架图
根据这个我们来实现代码。
三、服务端代码
1、检测main函数参数是否正确
检查是否少输入了ip、端口号等信息,如果少输入产生错误,退出程序
2、socket创建套接字、使用udp通信
使用udp虽然没有tcp的稳定,但是对于小数据频繁交互比较适合,对于单词查询这种数据量比较小的也很小概率回出现错误。
3、设置通信结构体
这里主要是配置ip、端口号
4、bind绑定通信结构体 5、打开sqlite3数据库,准备开始查询数据库.db中的单词
sqlite3打开失败回结束程序
6、进入死循环,一直使用recvfrom接收客户端发来的数据
7、接收到了数据使用sqlite3中的api sqlite3_exec进行查询
8、不管成功失败,我们都会使用sendto发送成功查到的单词或失败信息
9、ctrl+c会结束死循环,关闭sqlite3、关闭服务端通信、结束服务端程序
四、客户端代码
1、使用getenv获取环境变量中设置了的ip号与端口号
可以通过vim ~/.bachrc来查看、编写里面的内容
可以看到我这里的环境变量
2、检测参数
如果没有单词参数则结束客户端程序
3、socket创建套接字、使用udp通信 4、设置通信结构体
这里和服务端一样,还是配置ip,和端口号
5、connect请求与服务端进行确定
6、向服务端send发送查单词请求
7、rcve接收服务端查到的数据
8、查询时间输出,把查询时间+单词保存到一个文档日志里面
9、关闭查询日志、关闭网络通信、结束查询。
五、代码展示、结果展示
在最后提供的资料中source文件夹有server服务端源码
总体预览:
在最后提供的资料中source文件夹有client客户端源码
整体预览
两个代码都使用了makefile进行了管理
六、运行结果展示
最后附带源码地址:https://download.csdn.net/download/2403_82436914/90564382
到此这篇关于linux系统下基于udp+sqlite3实现的单词查询器(推荐)的文章就介绍到这了,更多相关udp sqlite单词查询器内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论