一、概述
本文章是来自于华清远见的一个基于C语言的网络电子词典项目,使用到了tcp协议的并发服务器设计、网络编程、文件I/O、数据库等多方面的知识。可以满足多用户同时登陆,用户登陆后可以查询单词及历史记录,具有查找快速,保密性好等优点。对于初学嵌入式的同学们是一个非常不错的练习项目。
二、拓扑结构图
三、项目流程
简化版流程图
1.首先搭建一个tcp客户端,一级界面包含组成、登录、退出,二级界面包含单词查询、历史记录、退出。
2.由客户端首先进入注册界面,输入注册的账号和密码,账号和密码就传入到user数据库中保存。再进入登录界面,输入账号和密码,当匹配到user数据库中有相同的账号和密码的时候,就进入二级界面。选择单词查询,输入查询的单词后,匹配dict数据库中的单词,找到该单词后返回单词在数据库中的注释,同时记录进去一条历史记录。选择历史记录,就可调出本次查询的单词、查询时间等信息。选择退出后结束该程序。
四、实现效果
注册
登录
查单词
查历史记录
五、代码
客户端代码
#include "head.h"
//用户提示界面1
void help_info1()
{
printf("\t-----------------------------------------------\n");
printf("\t| HENRY 在线辞典 |\n");
printf("\t|版本:0.0.1 |\n");
printf("\t|作者:Demons457 |\n");
printf("\t|功能: |\n");
printf("\t| [1] 登录 |\n");
printf("\t| [2] 注册 |\n");
printf("\t| [3] 退出 |\n");
printf("\t|注意:用户只有登录成功后才能进入查单词界面 |\n");
printf("\t------------------------------------------------\n");
return;
}
void help_info2()
{
printf("\t-----------------------------------------------\n");
printf("\t| 欢迎进入单词查询系统,很高兴为您服务 |\n");
printf("\t|版本:0.0.1 |\n");
printf("\t|作者:Demons457 |\n");
printf("\t|功能: |\n");
printf("\t| [1] 查单词 |\n");
printf("\t| [2] 查询历史记录 |\n");
printf("\t| [3] 退出查询系统 |\n");
printf("\t|注意:用户只有登录成功后才能进入查单词界面 |\n");
printf("\t------------------------------------------------\n");
return;
}
//用户输入指令,供大家选择
enum{
LOGIN = 1, //登陆
REGISTER = 2, //注册
QUIT = 3, //退出
QUERY = 1, //查询单词
HISTORY = 2, //查询历史
};
int init_tcp(char *ip,char *port)
{
int sockfd;
struct sockaddr_in