当前位置: 首页 > news >正文

网站如何自己做优化自助建站系统免费加盟

网站如何自己做优化,自助建站系统免费加盟,怎么做网站编辑,杭州网站设计渠道目录 一、功能要求 服务器 用户客户端 二、演示效果 1.登录、注册功能 2. 查单词功能 3.查看历史纪录功能 三、项目代码 1.头文件 2.服务器 3.用户端 一、功能要求 仿照云词典的原理#xff0c;实现云词典功能#xff0c;用户可以查询输入的单词的英文解释实现云词典功能用户可以查询输入的单词的英文解释也可以查看历史记录。 服务器 处理客户端的请求并将数据存入数据库中客户端请求的数据从数据库进行获取服务器转发给客户端。 用户客户端 实现账号的注册、登录功能当登录成功时可以查单词、查看历史记录等功能。 二、演示效果  1.登录、注册功能 2. 查单词功能 3.查看历史纪录功能 三、项目代码  1.头文件 #include stdio.h #include stdlib.h #include unistd.h #include string.h #include sqlite3.h #include signal.h #include time.h #include sys/socket.h #include netinet/in.h #include arpa/inet.h #include sys/select.hstruct word_msg {char word[20]; // 单词char parse[256]; // 含义 };typedef struct {int acceptfd; // 链接客户端unsigned char type; // 功能类型 R:注册 L:登录 Q:查询 H:历史记录char name[32]; // 用户名char password[32]; // 密码char buf[1024]; // 调试信息struct word_msg msgg; // 单词信息 } MSG; 2.服务器 #include head.hfd_set readfds, tempfds; sqlite3 *db; MSG msg;void zhuce(MSG *msg); // 注册 void denglu(MSG *msg); // 登录 void chaxun(MSG *msg); // 查询 void lishi(MSG *msg); // 历史int main(int argc, char *argv[]) {if (argc ! 2){printf(用法port\n);return -1;}int sockfd socket(AF_INET, SOCK_STREAM, 0);printf(sorkfd%d\n, sockfd);struct sockaddr_in saddr, caddr;saddr.sin_family AF_INET;saddr.sin_port htons(atoi(argv[1]));saddr.sin_addr.s_addr INADDR_ANY;socklen_t addrlen sizeof(saddr);if (bind(sockfd, (struct sockaddr *)saddr, addrlen) 0){perror(bind失败);close(sockfd);return -1;}printf(bind成功\n);if (listen(sockfd, 7) 0){perror(lisren失败);close(sockfd);return -1;}printf(listen成功\n);// 打开数据库if (sqlite3_open(./yuncidian.db, db) 0){printf(打开数据库失败: %s\n, sqlite3_errmsg(db));return -1;}FD_ZERO(readfds);FD_ZERO(tempfds);FD_SET(sockfd, readfds);int max sockfd;while (1){tempfds readfds;int ret select(max 1, tempfds, NULL, NULL, NULL);if (ret -1){perror(select失败);close(sockfd);return -1;}if (FD_ISSET(sockfd, tempfds)){int acceptfd accept(sockfd, (struct sockaddr *)caddr, addrlen);if (acceptfd 0){perror(accept失败\n);return -1;}printf(客户端ip%s\t 端口号%d\n, inet_ntoa(caddr.sin_addr), ntohs(caddr.sin_port));FD_SET(acceptfd, readfds);if (max acceptfd){max acceptfd;}}for (int i sockfd 1; i max; i){if (FD_ISSET(i, tempfds)){int ret recv(i, msg, sizeof(msg), 0);msg.acceptfd i;if (ret 0){perror(recv失败);close(sockfd);return -1;}else if (ret 0){printf(客户端acceptfd%d退出\n, i);FD_CLR(i, readfds);close(i);while (!FD_ISSET(max, readfds)){max--;}}else{printf(%c\n, msg.type);switch (msg.type){case R:zhuce(msg);break;case L:denglu(msg);break;case Q:chaxun(msg);break;case H:lishi(msg);break;default:break;}}}}}return 0; }void zhuce(MSG *msg) // 注册 {memset(msg-buf, 0, sizeof(msg-buf));char *errmsg NULL;char sql[128];char check_sql[128];char **result NULL;int rows, columns;while (1){ // 检查用户名是否已存在sprintf(check_sql, select * from user where name%s;, msg-name);if (sqlite3_get_table(db, check_sql, result, rows, columns, errmsg) ! 0){sprintf(msg-buf, 查询失败: %s, errmsg);break;}if (rows 0){sprintf(msg-buf, 用户名已存在);break;}// 执行插入操作sprintf(sql, insert into user values(%s,%s);, msg-name, msg-password);if (sqlite3_exec(db, sql, NULL, NULL, errmsg) ! 0){sprintf(msg-buf, 注册失败: %s, errmsg);break;}else{printf(%s\n, sql);sprintf(msg-buf, 注册成功);break;}}send(msg-acceptfd, msg-buf, sizeof(msg-buf), 0); } void denglu(MSG *msg) // 登录 {memset(msg-buf, 0, sizeof(msg-buf));char sql[128];char *errmsg NULL;char **result NULL;int rows, columns;while (1){sprintf(sql, select * from user where name %s and password %s;, msg-name, msg-password);// 执行 SQL 查询int sqlget sqlite3_get_table(db, sql, result, rows, columns, errmsg);if (sqlget ! 0){sprintf(msg-buf, sqlite3_get_table错误%s, errmsg);break;}else if (rows 0){sprintf(msg-buf, 登录成功);break;}else{sprintf(msg-buf, 登录失败);break;}}send(msg-acceptfd, msg-buf, strlen(msg-buf), 0); } void chaxun(MSG *msg) // 查询 {memset(msg-buf, 0, sizeof(msg-buf));char sql[1024];char sql1[1024];char *errmsg NULL;char **result NULL;int rows, columns;time_t t;struct tm *timeinfo;char date[100];time(t);timeinfo localtime(t);while (1){snprintf(date, sizeof(date), %d-%d-%d %d:%d:%d, timeinfo-tm_year 1900, timeinfo-tm_mon 1, timeinfo-tm_mday, timeinfo-tm_hour, timeinfo-tm_min, timeinfo-tm_sec);snprintf(sql, sizeof(sql), select parse from dic where word%s;, msg-msgg.word);snprintf(sql1, sizeof(sql1), insert into history values (%s,%s,%s);, msg-name, date, msg-msgg.word);if (sqlite3_exec(db, sql1, NULL, NULL, errmsg) ! 0){sprintf(msg-buf, 放入历史记录失败: %s, errmsg);break;}printf(%s\n, sql1);int rc sqlite3_get_table(db, sql, result, rows, columns, errmsg);if (rc ! 0){sprintf(msg-buf, 查询失败: %s, errmsg);}else{if (rows 0){for (int i 1; i rows; i){strcat(msg-buf, 查询到的单词信息:);strcat(msg-buf, result[i * columns]);strcat(msg-buf, \n);}printf(%s\n, sql);break;}else{strcpy(msg-buf, 没有找到该单词信息.);break;}}}send(msg-acceptfd, msg-buf, strlen(msg-buf) - 1, 0); } void lishi(MSG *msg) // 历史 {printf(%s\n, msg-name);char sql[1100];char *errmsg NULL;char **result NULL;int rows, columns;while (1){sprintf(sql, select date,word from history where name%s;, msg-name);memset(msg-buf, 0, sizeof(msg-buf));int rc sqlite3_get_table(db, sql, result, rows, columns, errmsg);if (rc ! 0){sprintf(msg-buf, 查询历史记录失败: %s, errmsg);break;}else{if (rows 0){for (int i 1; i rows; i){strcat(msg-buf, 查询到的信息:);for (int j 0; j columns; j){strcat(msg-buf, result[i * columns j]);strcat(msg-buf, );}strcat(msg-buf, \n);}break;}else{strcpy(msg-buf, 该历史记录不存在);break;}}}send(msg-acceptfd, msg-buf, strlen(msg-buf) - 1, 0); } 3.用户端 #include head.hint flag 0; fd_set readfds, tempfds; sqlite3 *db; MSG msg;void denglujiemian(); // 登录界面 void yuncidianjiemian(); // 云词典界面 void zhuce(MSG *msg); // 注册 void denglu(MSG *msg); // 登录 void chaxun(MSG *msg); // 查询 void lishi(MSG *msg); // 历史int main(int argc, char *argv[]) {if (argc ! 2){printf(用法port\n);return -1;}int sockfd socket(AF_INET, SOCK_STREAM, 0);if (sockfd 0){perror(socket err);return -1;}struct sockaddr_in saddr;saddr.sin_family AF_INET;saddr.sin_port htons(atoi(argv[1]));saddr.sin_addr.s_addr inet_addr(192.168.50.214);socklen_t addrlen sizeof(saddr);if (connect(sockfd, (struct sockaddr *)saddr, addrlen) 0){perror(connect err);return -1;}printf(connect 成功\n);while (1){memset(msg.buf, 0, sizeof(msg.buf));msg.acceptfd sockfd;if (flag 0){denglujiemian(); // 登录界面}if (flag 1){yuncidianjiemian(); // 云词典界面}printf(请输入选项: );scanf( %c, msg.type);printf(msg.type:%c\n, msg.type);switch (msg.type){case R:zhuce(msg); // 注册break;case L:denglu(msg); // 登录break;case Q:chaxun(msg); // 查询break;case H:lishi(msg); // 历史break;case D:flag 0; // 返回登录菜单break;default:break;}}// 6.关闭close(sockfd);return 0; }void denglujiemian() // 登录界面 {printf(************************************\n);printf(* R: register L: login D: quit *\n);printf(************************************\n); } void yuncidianjiemian() // 云词典界面 {printf(***********************************************\n);printf(* Q: query_word H: history_record D: quit *\n);printf(***********************************************\n); }void zhuce(MSG *msg) // 注册 {memset(msg-name, 0, sizeof(msg-name));memset(msg-password, 0, sizeof(msg-password));printf(请输入用户名:);scanf(%s, msg-name);getchar();printf(请输入用户密码:);scanf(%s, msg-password);getchar();send(msg-acceptfd, msg, sizeof(*msg), 0);recv(msg-acceptfd, msg-buf, sizeof(msg-buf), 0);printf(%s\n, msg-buf); } void denglu(MSG *msg) // 登录 {while (1){memset(msg-name, 0, sizeof(msg-name));memset(msg-password, 0, sizeof(msg-password));printf(请输入用户名:);scanf(%s, msg-name);getchar();printf(请输入用户密码:);scanf(%s, msg-password);getchar();send(msg-acceptfd, msg, sizeof(*msg), 0);recv(msg-acceptfd, msg-buf, sizeof(msg-buf), 0);printf(%s\n, msg-buf);if (strcmp(msg-buf, 登录成功) 0){flag 1;break;}if (strcmp(msg-buf, 登录失败) 0){continue;}} } void chaxun(MSG *msg) // 查询 {while (1){memset(msg-buf, 0, sizeof(msg-buf));memset(msg-msgg.word, 0, sizeof(msg-msgg.word));printf(请输入要查询的单词(输入退出查询));scanf(%s, msg-msgg.word);getchar();if (strcmp(msg-msgg.word, #) 0){break;}else{send(msg-acceptfd, msg, sizeof(*msg), 0);recv(msg-acceptfd, msg-buf, sizeof(msg-buf), 0);printf(%s\n, msg-buf);continue;}} } void lishi(MSG *msg) // 历史 {send(msg-acceptfd, msg, sizeof(*msg), 0);recv(msg-acceptfd, msg-buf, sizeof(msg-buf), 0);printf(%s\n, msg-buf); }
文章转载自:
http://www.morning.wwthz.cn.gov.cn.wwthz.cn
http://www.morning.tngdn.cn.gov.cn.tngdn.cn
http://www.morning.qdlr.cn.gov.cn.qdlr.cn
http://www.morning.sgrwd.cn.gov.cn.sgrwd.cn
http://www.morning.yjfmj.cn.gov.cn.yjfmj.cn
http://www.morning.cpwmj.cn.gov.cn.cpwmj.cn
http://www.morning.bnrff.cn.gov.cn.bnrff.cn
http://www.morning.ykrss.cn.gov.cn.ykrss.cn
http://www.morning.qhln.cn.gov.cn.qhln.cn
http://www.morning.zlxkp.cn.gov.cn.zlxkp.cn
http://www.morning.mcjrf.cn.gov.cn.mcjrf.cn
http://www.morning.zxqqx.cn.gov.cn.zxqqx.cn
http://www.morning.plnry.cn.gov.cn.plnry.cn
http://www.morning.cmhkt.cn.gov.cn.cmhkt.cn
http://www.morning.trrrm.cn.gov.cn.trrrm.cn
http://www.morning.dpnhs.cn.gov.cn.dpnhs.cn
http://www.morning.bsplf.cn.gov.cn.bsplf.cn
http://www.morning.wckrl.cn.gov.cn.wckrl.cn
http://www.morning.ksjmt.cn.gov.cn.ksjmt.cn
http://www.morning.wtnwf.cn.gov.cn.wtnwf.cn
http://www.morning.dshkp.cn.gov.cn.dshkp.cn
http://www.morning.yfqhc.cn.gov.cn.yfqhc.cn
http://www.morning.bypfj.cn.gov.cn.bypfj.cn
http://www.morning.hhzdj.cn.gov.cn.hhzdj.cn
http://www.morning.bpmtl.cn.gov.cn.bpmtl.cn
http://www.morning.kjgrg.cn.gov.cn.kjgrg.cn
http://www.morning.lmpfk.cn.gov.cn.lmpfk.cn
http://www.morning.bqrd.cn.gov.cn.bqrd.cn
http://www.morning.qhjkz.cn.gov.cn.qhjkz.cn
http://www.morning.syqtt.cn.gov.cn.syqtt.cn
http://www.morning.mcqhb.cn.gov.cn.mcqhb.cn
http://www.morning.yrwqz.cn.gov.cn.yrwqz.cn
http://www.morning.kpbn.cn.gov.cn.kpbn.cn
http://www.morning.qfqld.cn.gov.cn.qfqld.cn
http://www.morning.jrgxx.cn.gov.cn.jrgxx.cn
http://www.morning.wmfny.cn.gov.cn.wmfny.cn
http://www.morning.lbcbq.cn.gov.cn.lbcbq.cn
http://www.morning.zyrcf.cn.gov.cn.zyrcf.cn
http://www.morning.tgfsr.cn.gov.cn.tgfsr.cn
http://www.morning.alive-8.com.gov.cn.alive-8.com
http://www.morning.srrrz.cn.gov.cn.srrrz.cn
http://www.morning.clbzy.cn.gov.cn.clbzy.cn
http://www.morning.ryxgk.cn.gov.cn.ryxgk.cn
http://www.morning.uycvv.cn.gov.cn.uycvv.cn
http://www.morning.qbzfp.cn.gov.cn.qbzfp.cn
http://www.morning.nmrtb.cn.gov.cn.nmrtb.cn
http://www.morning.pbzgj.cn.gov.cn.pbzgj.cn
http://www.morning.phnbd.cn.gov.cn.phnbd.cn
http://www.morning.zyslyq.cn.gov.cn.zyslyq.cn
http://www.morning.yhsrp.cn.gov.cn.yhsrp.cn
http://www.morning.rmpkn.cn.gov.cn.rmpkn.cn
http://www.morning.wwnb.cn.gov.cn.wwnb.cn
http://www.morning.qzsmz.cn.gov.cn.qzsmz.cn
http://www.morning.cbndj.cn.gov.cn.cbndj.cn
http://www.morning.rylr.cn.gov.cn.rylr.cn
http://www.morning.tfrmx.cn.gov.cn.tfrmx.cn
http://www.morning.ryxdr.cn.gov.cn.ryxdr.cn
http://www.morning.jhwqp.cn.gov.cn.jhwqp.cn
http://www.morning.ntffl.cn.gov.cn.ntffl.cn
http://www.morning.nkdmd.cn.gov.cn.nkdmd.cn
http://www.morning.wgqtj.cn.gov.cn.wgqtj.cn
http://www.morning.gwhjy.cn.gov.cn.gwhjy.cn
http://www.morning.rglzy.cn.gov.cn.rglzy.cn
http://www.morning.bpmdn.cn.gov.cn.bpmdn.cn
http://www.morning.mnbgx.cn.gov.cn.mnbgx.cn
http://www.morning.ftmp.cn.gov.cn.ftmp.cn
http://www.morning.qinhuangdjy.cn.gov.cn.qinhuangdjy.cn
http://www.morning.gmwqd.cn.gov.cn.gmwqd.cn
http://www.morning.qjsxf.cn.gov.cn.qjsxf.cn
http://www.morning.qtqjx.cn.gov.cn.qtqjx.cn
http://www.morning.wcjgg.cn.gov.cn.wcjgg.cn
http://www.morning.rkqqf.cn.gov.cn.rkqqf.cn
http://www.morning.mysmz.cn.gov.cn.mysmz.cn
http://www.morning.ahscrl.com.gov.cn.ahscrl.com
http://www.morning.c7512.cn.gov.cn.c7512.cn
http://www.morning.skmpj.cn.gov.cn.skmpj.cn
http://www.morning.ndtzy.cn.gov.cn.ndtzy.cn
http://www.morning.hflrz.cn.gov.cn.hflrz.cn
http://www.morning.npbkx.cn.gov.cn.npbkx.cn
http://www.morning.cbynh.cn.gov.cn.cbynh.cn
http://www.tj-hxxt.cn/news/263289.html

相关文章:

  • 动漫做美食的视频网站网站建设云主机云服务器
  • 西安技术网站建设搭建网站基本步骤
  • 网站开发完成如何上线公司注册资金实缴新政策出台2024
  • 网站平台建设可行性模仿一个网站建设多少钱
  • 网站专题方案网站建设的流程ppt
  • 英雄联盟网站设计购物盒子WordPress支付插件
  • 建设银行理财产品网站做视频网站的方法
  • 饲料 东莞网站建设网站如何做用户的实名认证
  • 小说网站开发环境那个号做网站虚拟主机怎么选择
  • 洛阳专业做网站公司神马推广登录
  • 大良营销网站建设价位丹阳网站建设机构
  • 丝绸之路网站建设懂得做网站还可以做什么兼职
  • 建设网站需要什么设施食品库存管理软件
  • 2008建立的php网站慢十堰做网站的
  • 网站后台管理破解大连中国建筑装饰网
  • 医疗网站建设新闻做网站推广需要花多少钱
  • 电子商务网站开发步骤包装盒网站模板下载
  • 网站开发英文参考文献郑州抖音seo推广
  • 石家庄网站推广专业android studio手机版
  • 网站建设 兼职 外包百度描述 网站
  • 网页制作工具的选择与网站整体风格网站建设者属于广告经营者吗
  • 太原建站模板网络营销方案的制定思路
  • 企业网站建站源码黄埔移动网站建设
  • 九江建网站的公司单位做网站支出应怎么核算
  • wordpress编辑主页seo托管服务
  • 济南行知网网站建设37玩手游官网平台
  • 做外贸网站平台南宁新技术产业建设开发总公司网站
  • 在住房城乡建设部网站上哪里下载规范永州市住房和城乡建设厅网站
  • 网站开发项目的需求分析网站建设ppt方案
  • 四平网站建设怎么选做论坛网站价格