资源简介
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 标准文档
相关资源
- Modbus协议官方文档中、英文全
- Omron ETN21模块进行modbustcp通讯
- MP3文件ID3v2ID3v2APEv2标签读取
- 课程作业:模拟仓库管理系统
- 组态王中S7-300TCP驱动
- 基于Apache Mina实现的TCP长连接和短连接
- CVI下的TCP服务器和客户端
- 代码客:G-TcpServer(IOCP) 1.0 正式版及
- 一个简单实用个人日记管理系统
- 带时间温度显示的室内灯光控制系统
- TCP 发包工具(windows)
- 成绩管理系统(数据结构)
- FIR低通滤波器 ccs运行环境
- VxWorks TCPIP协议栈
- socket小工具(可方便建立TCP UDP的soc
- vc 编写的基于TCP协议的客户/服务器
- 基于CSocket的多人聊天室
- 采用WINSOCK2 编写的TCP/UDP通信程序
- Modbus TCP Client
- 易语言 TCP使用HTTP、SOCKES5代理IP。
- 西门子S7-1200 MODBUS-TCP通讯编程
- 200SMART Modbus-TCP通信程序演示-轮询(多
- TCP_UDP对结构体加密数据传输
- 基于PIC的TCP/IP网络协议和zigbee无线传
- 欧姆龙PLC tcp通信工具
- 欧姆龙以太网通讯TCP/UDP及欧姆龙PLC程
- C malloc函数用法
- 流媒体相关协议标准RTP/RTSP/RTCP PDF文档
- 航海模拟器中DCPA TCPA的算法
- TCPMP 支持ce6.0的播放器
评论
共有 条评论