客户端注册模块

//注册
int do_register(int sockfd, MSG_T *msg){printf("register ...\n");memset(msg, 0, sizeof(MSG_T));//将msg内存全部置为0msg->type = MSGTYPE_R;printf("input name:");scanf("%s", msg->name);getchar();  //输入注册用户名printf("input passwd:");scanf("%s", msg->data);getchar();//输入注册用户密码if(send(sockfd, msg, sizeof(MSG_T),0) < 0){  //将消息发送给服务器printf("fail to send register msg.\n");return -1;}if(recv(sockfd, msg, sizeof(MSG_T), 0) < 0){  //接收服务器发来的消息printf("fail to register.\n");return -1;}printf("%s\n", msg->data);return 1;
}

服务器注册模块

 //注册
int do_register(int sockfd, MSG_T *msg, sqlite3 *db){char sql[128] = {0};char *errmsg = NULL;sprintf(sql, "insert into usr values('%s','%s');", msg->name, msg->data);//将格式化的数据写入sqlif(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK){  //执行sql语句    printf("%s\n", errmsg);memset(msg->data, 0, strlen(msg->data));sprintf(msg->data, "usr(%s) already exist !", msg->name);}else{printf("client usr(%s) registe success\n", msg->name);memset(msg->data, 0, strlen(msg->data));strcpy(msg->data, "register ok!");}//返回应答if(send(sockfd, msg, sizeof(MSG_T), 0) < 0){  //发送消息给客户端(给客户端做出应答)printf("fail to send\n");return 0;}return 1;
}

编译通过后,就可以进行用户注册测试
右边命令终端是在客户端中进行用户注册操作
左边命令终端是在数据库中查看是否创建成功
打开数据库验证后,出现zhangsan|123,确实成功注册了

注册模块功能已经实现
下面进行登录模块功能的实现

网络编程在线英英词典之注册模块实现(三)相关推荐

  1. 脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手

    转自即时通讯网:http://www.52im.net/ 1.引言 网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一.很多读者都知道"三次"和&quo ...

  2. 基于数据库及TCP网络编程实现的电子词典

    目录 一.前言 二.项目介绍 三.功能实现 3.1. 用户注册 3.1.1 功能演示 3.1.2 功能函数实现 3.2. 用户登录 3.2.1 功能演示 3.2.2 功能函数实现 3.3. 查询单词 ...

  3. java基础5:工厂模式、单例模式、File文件类、递归、IO流、Properties配置文件、网络编程、利用IO流模拟注册登录功能、关于反射、JDK动态代理

    1.工厂模式 23种java设计模式之一 1)提供抽象类(基类) 2)提供一些子类,完成方法重写 3)提供一个接口:完成具体子类的实例化对象的创建,不能直接new子类,构造函数私有化. 优点:具体的子 ...

  4. Linux网络编程——在线词典项目

    目录 一.要求 二.框架 三.各部分的实现 客户端 注册 登录 查询 历史查询 服务器 解析客户端命令 注册 登录 单词查询 时间获取 查询单词成功向数据库插入时间等信息 历史查询 四.项目源码 客户 ...

  5. 网络编程中客户端链接的合法性,socketserver模块

    客户端链接的合法性 验证合法性: 首先,我们来探讨一下,什么叫验证合法性, 举个例子:有一天,我开了一个socket服务端,只想让咱们这个班的同学使用,但是有一天,隔壁班的同学过来问了一下我开的这个服 ...

  6. 不为人知的网络编程(九):理论联系实际,全方位深入理解DNS

    本文原作者:selfboot,博客地址:selfboot.cn,Github地址:github.com/selfboot,感谢原作者的技术分享. 1.引言 对于 DNS(Domain Name Sys ...

  7. Java进阶(十三)网络编程

    十三.网络编程 什么是网络编程? 网络编程可以让程序与网络上的其他设备中的程序进行数据交互. 网络通信基本模式: 常见的通信模式有如下两种形式:Client/Server(CS模式).Browser/ ...

  8. Netty框架架构解析+API+运行流程+网络编程文章集锦

    新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析 <!-- 作者区域 --><div class="author"><a class=& ...

  9. Android网络编程系列 一 Socket抽象层

    在<Android网络编程>系列文章中,前面已经将Java的通信底层大致的描述了,在我们了解了TCP/IP通信族架构及其原理,接下来我们就开始来了解基于tcp/ip协议层的Socket抽象 ...

  10. 网络编程懒人入门(七):深入浅出,全面理解HTTP协议

    转自即时通讯网:http://www.52im.net/ 本文引用了自简书作者"涤生_Woo"的文章,内容有删减,感谢原作者的分享. 1.前言 HTTP(全称超文本传输协议,英文全 ...

最新文章

  1. opencv---JPEG图像质量检测代码
  2. 信息系统项目管理师-项目采购管理核心知识点思维脑图
  3. AspNetCore中使用Ocelot之 IdentityServer4
  4. [Mojava 10.14.4] Clover隐藏多余分区, 原来可以这么简单
  5. 信息学奥赛一本通(2056:【例3.7】最大的数)
  6. elasticsearch aggregations_Elasticsearch聚合的嵌套桶如何排序
  7. Oracle 12c 能否在2小时内完成一张14亿条记录的表结构字段类型变更
  8. 【英语学习】【WOTD】shard 释义/词源/示例
  9. (三)Netty之Channel通道
  10. golang 捕获堆栈信息_一篇文章教你如何捕获前端错误
  11. 软件项目管理原则谈-转自51testing
  12. 启用了文件索引,干脆连文件都找不到了
  13. 动手设计 CPU(三)—— 微程序控制的存储器读写系统设计
  14. List中存放list
  15. HTML5+CSS大作业——“传统节日--端午节(9页)
  16. ACM题解——贪心——卫星安装
  17. MySQL之高级SQL语句
  18. 浅谈CNN里的Lasso
  19. MIT 18.01 Single Variable Calculus(单变量微积分)课堂笔记【4】——求导法则,隐函数微分和反函数求导
  20. 云e办(后端)——项目介绍及搭载项目

热门文章

  1. SAP 入门学习途径——官方工具使用
  2. js一键批量打印_(原创)javascript 实现批量打印《简历》
  3. 矩孔菲涅尔衍射 matlab,圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学.docx
  4. CBLUE: A Chinese Biomedical LanguageUnderstanding Evaluation Benchmark
  5. 还挺好看!用命令行画思维导图;66天机器学习之旅;斯坦福CS234 强化学习课程;哈佛CS50 计算机科学导论课程;前沿论文 | ShowMeAI资讯日报
  6. 51单片机c语言避障小车,基于51单片机的循迹避障小车的设计.doc
  7. 爱思唯尔计算机期刊排名,2017影响因子高增长爱思唯尔物理期刊推荐
  8. UIControl 纠错
  9. 操作系统安全与系统攻击
  10. LVGL v8.1.0 lv_table 内存泄漏问题