在线词典:应用层知识点汇总

本文详细介绍了基于TCP的电子词典服务器设计与实现,包括子进程管理、心跳包机制、数据库交互、用户账户管理和历史记录功能。服务器使用epoll进行高效事件检测,支持注册、登录、单词查询和历史记录查看等功能。

电子词典:

首先服务器进行tcp初始化,而使用epoll检测listefd和服务端的输入信息,检测到listenfd时创建子进程

服务端使用tcp与客户端进行连接,每一个客户端请求连接时,服务端创建一个子进程与客户端进行对接,
加入心跳包机制,防止意外掉线时服务端对接进程不结束而始终占用系统资源,检测到alarm信号时子进
程自动结束,同时子进程的状态改变,系统内核会发送SIGCHLD信号给父进程,父进程则在此时回收僵尸
子进程。

若epoll检测到服务端输入为quit,则杀死所有子进程并结束程序

同时,最新创建的第一个子进程调用pro_bridge函数,各个对接子进程通过共享内存与pro_bridge通信传递
信息,pro_bridge则向服务端输出界面输出客户的登录下线等提示信息,而各个子进程将共享内存视为临界
资源,通过信号量互斥锁与第一子进程进行同步,以便正确输出提示信息。

每一个服务端的对接子进程检测到用户注册账号时创建相应的账号存入数据库,并历史记录文件account.his,
检测到用户查询时,查询数据库并发送相应的单词及释义给客户端,同时,将查询的单次写入对应的历史记录
文件中,若检测到用户要查看历史记录时,则读取相应的历史记录文件给对应的客户端,若用户删除对应的账号
时,从数据库中删除账号并将对应的历史记录文件删除。

功能:注册、登录、查询单词、查看历史记录、下线以及注销

注:有数据库sqlite3文件word_table.db,其中有两张表:word_table(word,explain), user(account,passwd)
服务端还有对应的历史记录文件夹history用于存放每个账户的历史记录文件account.his
客户端:
在这里插入图片描述
服务器代码:

服务器代码2
头文件:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值