资源简介
1. 用户登录(登录失败可重复登录);
2. 用户注册(已有用户不能注册,需要输入两次密码);
3. 单词查询(根据客户端输入的单词,服务器可以根据数据库查找反馈查询的单词和解释);
4. 历史记录查询(查询单词时服务器会将历史记录存在数据库中,客户端查询时刻查询历史记录的时间和具体单词);
5. 进入每一级后可以返回上一级继续执行上一级的操作,有清屏功能;
6. 可同时登录多个用户(多个用户可反复登录,反复注册);
代码片段和文件信息
/*************************************************************************
File Name: client.c
Author: Young
motto: Continuous efforts will lead to a better future
Created Time: Sun 2 Sep 2018 10:00:05 CST
************************************************************************/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define N 64
#define M 512
typedef struct //消息结构体
{
int type;
char name[N];
char data[M];
}MSG;
int n;
void help_l(); //帮助手册
void display_1(); //第一个界面显示
void display_2(); //查询界面显示
void display_3(int sockfd MSG *msg); //查询界面函数
int login(int sockfd MSG *msg); //登录函数
int register_z(int sockfd MSG *msg); //注册函数
int search_word(int sockfd MSG *msg); //单词查询函数
int history(int sockfd MSG *msg); //历史记录查询函数
int return_l(int sockfd MSG *msg); //返回上一级给服务器发送相应的信号
int main(int argc char *argv[])
{
int sockfd; //创建套接字
MSG msg;
/*1.创建套接字*/
sockfd=socket(AF_INET SOCK_STREAM 0);
if(sockfd < 0)
{
perror(“socket“);
return -1;
}
printf(“socket success!\n“);
/*2.主动连接服务器*/
struct sockaddr_in serv_addr;
serv_addr.sin_family =AF_INET;
serv_addr.sin_port =htons(8888);
serv_addr.sin_addr.s_addr=inet_addr(“127.0.0.1“);
if(0>connect(sockfd (struct sockaddr *)&serv_addrsizeof(serv_addr)))
{
perror(“connect“);
return -1;
}
printf(“connect success\n“);
loop://使用无条件转移语句
while(1)
{
display_1(); //显示选择的页面
printf(“please input num:“);
scanf(“%d“&n);
getchar(); //利用getchar吃掉垃圾字符
switch(n)
{
case 1:
if(1 == login(sockfd&msg))//登录函数返回值为说明登录成功几个跳到第二个选择页面
{
goto loop1; //可用函数调用或者无条件转移跳到第二个选择页面
}
break;
case 2:
register_z(sockfd&msg);//注册用户
break;
case 3:
close(sockfd); //关闭套接字
return 0;
break;
case 4:
system(“clear“); //清屏
break;
case 5:
help_l(); //帮助
break;
default:
printf(“输入信息有误!\n“);
}
}
loop1://第二个选择的页面
while(1)
{
display_2();
printf(“please input num:“);
scanf(“%d“&n);
getchar(); //吃掉输入时的垃圾字符(‘\n‘)
switch(n)
{
case 1:
search_word(sockfd&msg); //查询单词函数
printf(“测试\n“);
break;
case 2:
if(1 == history(sockfd&msg)) //历史记录函数返回值是1代表又跳到前一个选择页面
{
goto loop1;
}
break;
case 3:
return_l(sockfd&msg);
goto loop; //跳到第一个选择页面
exit(0);
break;
case 4:
system(“clear“);//清屏功能
break;
case 5:
help_l(); //帮助手册
break;
default:
printf(“输入信息有误!\n“);
}
}
/*关闭套接字*/
close(sockfd);
return 0;
}
int return_l(int sockfdMSG *msg)
{
msg->type=5;
if(0 > send(sockfd msg sizeof(MSG)0))
{
perror(“send“);
return -1;
}
return 0;
}
int login(int sockfd MSG *msg)//登录函数
{
msg->type = 1;//选择数字功能为1
printf(“please input user:“);
scanf(“%s“msg->name);
getchar();
printf(“pleas
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-09-10 14:10 18070614 杨建新 在线英英词典\
文件 95 2018-09-10 14:10 18070614 杨建新 在线英英词典\Makefile
文件 12344 2018-09-10 14:10 18070614 杨建新 在线英英词典\client
文件 7716 2018-09-10 14:08 18070614 杨建新 在线英英词典\client_客户端原码.c
文件 1406598 2018-09-10 14:04 18070614 杨建新 在线英英词典\dict.txt
文件 1599 2018-09-10 14:04 18070614 杨建新 在线英英词典\dict_数据库处理程序.c
文件 1468416 2018-09-10 14:04 18070614 杨建新 在线英英词典\my_数据库.db
文件 12660 2018-09-10 14:10 18070614 杨建新 在线英英词典\server
文件 9640 2018-09-10 14:04 18070614 杨建新 在线英英词典\server_服务器原码.c
文件 21874 2018-09-10 13:45 18070614 杨建新 在线英英词典\在线英英词典说明文档及主函数说明.docx
- 上一篇:ansible-for-devops
- 下一篇:PCIe 3.0 标准文档
相关资源
- TCPUDP测试工具
- 32F103测频
- s7 1500作为服务器端和PC端通信
- tcpdump 源代码
- TCP/IP Essentials, TCP/IP 基础教程
- 基于单片机的室内空气净化系统
- C程序设计语言 第二版新 PDf (绝对超
- v4l2采集+yuyv转yuv420p+h264编码+tcp传输
- name-pipe-tcp-proxy
- PowerTCP Telnet for .NET 4.4.5 破解去除试用
- EC20建立一路SOCKT发数据_TCP(字符和十
- socket 编程 tcp 实现文件上传
- 包含modbus从机和主机的程序
- 基于Linux的设备分配及磁盘调度
- 基于Linux系统的航班信息与订票系统
- qt-tcp-FileTransfer.zip
- C安全编码标准中文版
- TCPIP协议详解卷123合集.zip
- 思科TCPIP路由技术卷一第二版
- Linux内核源码剖析—TCP/IP实现 下册折
- 基于嵌入式系统的远程家电控制系统
- 动态称重,四节称 源码,
- TCP转虚拟串口工具
- 正点原子407ZGT6 TCP网络摄像头
- TCP/IP Protocol SuiteTCP/IP协议族英文原版
- 图解tcp ip 第五版 高清带书签
- C程序设计第四版.谭浩强(带详细书签
- IdTCPServer、IdTCPClient Indy 10.6.2 编译平
- TCP-IP详解卷一带完整书签,整合到一
- iocp服务器代码_tct&udp;测试工具
评论
共有 条评论