在线英英词典

网络编程-在线英英词典项目 网络编程-在线英英词典项目实现 阅读详情

基于有道词典的一个基础项目的实现
知识点:linux socket sqlite3
项目描述:项目在利用linux的环境下 通过socket编程以多进程方式实现多个客户端和服务端的信息交互,并通过sqlite数据库实现对信息的查询和存储
主要功能:
1.用户注册及登录验证的功能实现
2.信息记录保存与搜索的功能实现
3.单词在线翻译
4.多用户登录

项目拓展点:
1.运用于传感器数据记录与查询: 通过消息的类型标记 传感器的发送的多种数据类型(温度 湿度 等);通过多个客户端代表多个传感器,实现多传感器的数据监测

项目大致流程图如下:
在这里撒的阿萨德述客户端连接上服务器后,根据所需要进行的服务类型发送对应类型的消息,这些消息经过服务器后对其类型识别进行相对应的服务
词库
在这里插入图片描述数据库创建
这里我通过命令行创建数据库和数据表,主要是命令行创建数据库方便更改类型
在这里插入图片描述这里需要引入 primary key 的关键词 主要是防止用户账号重名

头文件部分

#ifndef _INCLUDE_H_
#define _INCLUDE_H_

#include<stdlib.h>                                                                                                      
#include<unistd.h>
#include<string.h>
#include<stdio.h>
#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>
#include <netinet/in.h>
#include <signal.h>
#include <sys/wait.h>
#include <arpa/inet.h>

#include<sqlite3.h>
#include<time.h>
#define DATABASE "my.db"
#define SERVERPORT 8888
#define SERVERIP "192.168.0.104"
#define BACKLOG 5

#define filename "word.txt"//被查找的英文词库
#define N 32

#define R  1    // usr - register
#define L  2    // usr - login
#define Q  3    // usr - query
#define H  4    // usr - history

typedef struct {
   
   

	int type;//执行的服务类型	
	char name[N];//用户名 
	char data[1100];//要查询的单词  用户密码 或 查询单词的查询结果
}MSG;

/**************客户端**********/
extern int cdo_login(int fd,MSG  *msg);//  请求注册用户
extern int cdo_quary(int fd,MSG *msg);//	用户请求登录
extern int cdo_history(int fd,MSG *msg);//单词查询		
extern int cdo_register(int fd,MSG *msg); //用户查询记录

/**************服务端*************/
void  do_client(int fd, sqlite3 *db);//根据客户端服务类型 选择相应服务

int do_register(int fd,MSG *msg,sqlite3 *db);//用户注册
int do_login(int fd,MSG  *msg,sqlite3 *db);//用户登录
int do_quary(int fd,MSG *msg,sqlite3 *db);//根据查找结果 记录查找日志
	int do_searchWord(int fd,MSG *msg,char word[]);//单词查找
	void  get_date(char *date);//获取用户查找时间
	int history_callback(void *arg,int num,char **f_value,char **f_name);//查找完毕发送
int do_history(int fd,MSG *msg,sqlite3 *db);//历史记录查询
#endif

客户端代码


#include "include.h"

int main(int argc,char *argv[])
{
   
   
		int fd  =  -1;
		MSG	msg;
		struct sockaddr_in saddr;
/************初始化套接字***********/
	if(argc != 3)
	{
   
   
		printf("Usage: %s  server_IP  port\n",argv[0]);
		exit(-1);
	}
	if((fd = socket(AF_INET,SOCK_STREAM,0)) < 0)
	{
   
   
		perror("client socket");
		exit(-1);
	}
		bzero(&saddr,sizeof(saddr));	
		saddr.sin_family  = AF_INET;
		saddr.sin_port  = htons(atoi(argv[2]));
		saddr.sin_addr.s_addr = inet_addr((argv[1]));
	if(connect(fd,(struct sockaddr*)&saddr,sizeof(saddr)) < 0)
	{
   
   
		perror("connect");
		exit(-1);
	}
/*****************登录选项***************/	
	printf("client is Starting...\n");
		int n;
	while(1)
	{
   
   
		//登录 注册  选项
		printf("\n************************************************\n");
		printf("**  1: register      2. login         3.quit   **\n");
		printf("*************************************************\n");
		putchar(10);
		printf("please choose: ");
		scanf("%d",&n);	
		getchar();
		switch(n)
		{
   
   	
			case 1: cdo_register(fd,&msg);break;
			case 2: if(cdo_login(fd,&msg) ==1)  goto next; break;//登录成功 进行下一步 
			case 3: close(fd); exit(0);
			default:printf("Invailed data c
英英在线词典 利用数据库记录用户信息,查询历史,在服务器端有词典的资源文件,用户在客户端可查询想要的单词及查单词的历史记录 立即下载

相关推荐

在线电子词典小项目

这是一个在线电子词典小项目,分为客户端和服务端,客户端可以查询单词,服务端操作文件将单词的意思通过网络传递给客户端显示。这是一个培训小项目。想练习网络编程,文件操作的同学可以下载参考。

在线英英词典Linux C语言网络编程

在线英英词典,实现1.用户注册和登录验证;2单词在线翻译根据客户端输入的单词在字典文件中搜索;3.历史记录查询显示查找记录和查找时间;主要包含,数据库、客服端、服务器三个模块

wo_and_ni的博客 1246

Linux在线词典小项目

利用c语言,Linux网络编程,SQLite3数据库操作,文件操作

c项目-在线词典-项目描述

针对前面学习的C语言基础,C高级,数据结构及用法,文件IO和进程线程,网络编程的总结以及运用。大致需要实现的部分:a:在线英英词典,项目功能描述,用户注册和登录验证,服务器将用户信息和历史记录保存在数据库中。客户端输入用户名密码,服务器端在数据库中查找,匹配,返回结果。b:单词在线翻译,根据客户输入的单词在字典文件中收索。c:历史记录查询。

2301_79839645的博客 373

linux英英词典项目,五大主流英英词典(ESL)比较使用测评报告

写在前面市面上英英词典的种类和数量可谓非常多,但这些不同品牌和类型的英英词典之间具体有什么区别?对学习者来说,究竟哪一本英英词典才适合自己?带着这些疑问,我们挑选了市面上相对主流的针对语言学习者开发的五本英英词典(ESL)并从四个不同的角度对这几本英英词典进行了一次比较使用测评。(ESL: English as a second language)五本英英词典分别是:Longman Diction...

weixin_39798943的博客 1054

基于Linux操作系统的在线英英词典C语言代码

功能描述:1、可进行用户注册、登录2、可对用户查找的单词进行存储,放入SQLite数据库中,对历史记录进行查询,查询方式有用户名和单词两种方式3、可进行查看和修改用户信息,包括用户名,密码,电话,地址等4、分为客户端和服务器端,客户端进行用户的注册登录和查找单词等操作,服务器端进行操作数据库,进行存储和查找5、可进行多个客户端登录6、服务器端有管理员模式,在管理员模式下,不影响客户端的发送和接...

半路码农的博客 3895

常用在线英汉、英英词典

英汉词典站点: Dict.CN:http://dict.cn/        百度词典:http://dict.baidu.com/ 英英词典站点: TheFreeDictionary:http://www.thefreedictionary.com/ The Phrase Finder:http://www.phrases.org.uk/index.html Urban Dictio

风之去向 1216

在线英英词典项目实现

在线英英词典的实现

weixin_38161138的博客 2088

基于linux环境tcp网络编程(在线英英词典)文档 [1]

在线英英词典说明文档 用户登录(登录失败可重复登录); 用户注册(已有用户不能注册,需要输入两次密码); 单词查询(根据客户端输入的单词,服务器可以根据数据库查找反馈查询的单词和解释); 历史记录查询(查询单词时服务器会将历史记录存在数据库中,客户端查询时刻查询历史记录的时间和具体单词); 进入每一级后可以返回上一级继续执行上一级的操作,有清屏功能;  可同时登录多个用户(多个用户可反...

echo 2537

在线英英词典 简单的搜索查询

linux下,采用的多线程实现tcp服务器与客户端,用sqlite实现了用户的登录注册,输入英语单词获得其英语解释。支持查看本地历史记录。

基于linux环境tcp网络编程(在线英英词典)文档【2】

真心想学习的伙伴,需要库的朋友们请留言! 完整代码如下: client.c /************************************************************************* File Name: client.c Author: Young motto: Continuous efforts will l...

echo 1850

练习:在线英英词典

值得学习的内容: 1.网络通信TCP编程 2.多进程并发服务器 3.sqlite3轻量级数据库 4.IO多路复用编程,使用epoll族 client.c #include "MYHEAD.h" #define BACKLOG 5 //允许同时请求的客户端个数 #define PORT 5001 //端口号 #define TRANS 4 //单词解释 #defin...

Jan___的博客 528

在线英英词典完整代码

注意: 创建sqlite3数据库: 输入命令: 1、 sqlite3  my.db 2、 sqlite3 3、 create table usr(name char,data char); 4、 create table record(name char, date char,word  char); 5、下载词典:dict.txt放在当前目录下(链接:https://pan.baidu.com...

myshinelove的博客 7875

基于Linux下的英英词典

摘要: 本实验基于Linux Socket通信实现在线英英词典查询。前端使用C/S开发架构,后端使用轻量级数据库Sqlite3保存用户信息,已查询单词信息。本方案有两种实现方式:一,使用文件IO操作单词数据集。本地客户端查询远端服务器信息。二,使用数据库保存单词数据集(后期可完善英英,英汉单词互译),在本地查询单词后,后台数据库查询到单词释义后反馈给前台并展示出来。 实验可实现的功能: 在线...

qq_38473009的博客 754

mdx词典包_推荐几款实用的英语词典

这篇文章之前发过一次,这里做了一些修改,并补充了一些离线词典的下载链接。今天来跟大家聊一聊英英词典。为什么要说英英词典呢?因为正确的使用英英词典对于提高我们的写作水平有很大的帮助。如果同学们在平时阅读和写作时能够经常借助下面提到的几款词典,会极大的提高对词汇的掌握和运用。由于纸质词典查起来较为耗时,如果是阅读一篇外刊或者是英文小说,会在查单词上耗费很多不必要的时间,极大的降低了学习的效率...

weixin_39845039的博客 8094
上一篇: 基于套接字的实现简易文件传输的功能
下一篇: sqlite 基本函数使用
qq_42668783
博客等级 码龄8年 1粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值