电子词典流程图

news2025/1/11 7:40:20

简易流程:

 详细介绍

服务端(TCP并发)
一.分支线程负责处理客户端发送的信息
1.登陆与注册信息
登陆(l);注册(e)
(1)登陆根据接收的用户名,密码在用户注册表中遍历是否符合;
(2)注册接收到用户名与密码后写入注册表中(重名不可写入)
(3)登陆与注册都将用户的用户名,记录到用户登陆表中
登陆标识flag = 1;
2.查找单词信息
查找单词(f)
(1)根据用户发送的单词在单词表中查找对应单词与翻译并返回回去
(2)记录该用户的用户名,查找的单词,翻译,以及查找该单词的时间
3.查询历史信息
查询历史(h)
(1)根据该用户的用户名查询该用户的访问记录,并返回给客户端
4.下线信息
客户端(q):退出登陆(正常退出)
(1)服务器接收到后将用户的信息从用户登录表中删除;
登陆标识位置为0;
(2)异常退出
服务器接收到客户端下线信号,删除其在用户登陆表的信息
再将登录标识位置为0;

二.主线程负责监听客户端连接情况

客户端
一..登陆(type=l),注册(type=e)
登陆与注册都需要连接服务器后填写用户名与密码;但是发给服务器后服务器的操作并不相同,登陆时需要先将用户名和密码与注册表中在的信息作比较,正确则登陆成功,将信息添加到登陆用户表中,失败则返回菜单目录;注册则是输入用户名与密码后添加到注册表中后再将信息添加到登陆用户表,在服务端可以将二者结合起来
1.查找单词(type=f)
客户端查找单词需要输入单词,发送给服务器,服务器在单词表中查找到之后,返回给客户端,客户端接收到单词与翻译之后打印出来
2.查询历史(type=h)
客户端输入type = h,发送给服务端之后,服务端根据其用户名在历史记录表中查找其对应数据后返回,客户端需要接收单词,翻译,查询时间,并打印出来。
3.返回上级(type=q)
客户端发送type =q 给服务器之后,服务器删除其对应用户登陆表中的信息(包括,用户名,端口,IP),与此同时客户端返回上级菜单目录。


二.退出

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/146267.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ORB-SLAM2 --- ORBmatcher::SearchBySim3函数

目录 1.函数作用 2.函数流程 3.函数解析 3.1 准备工作:内参,计算Sim3的逆 3.2 记录已经匹配的特征点 3.3 通过Sim变换,寻找 pKF1 中特征点和 pKF2 中的新的匹配 3.4 通过Sim变换,寻找 pKF2 中特征点和 pKF1 中的新的匹…

Jenkins远程SSH部署SpringBoot项目

1.前置环境 前置环境配置:jdk、maven、git 2.在Jenkins配置git凭据 请查看往期文章: https://blog.csdn.net/RookiexiaoMu_a/article/details/122655272?spm1001.2014.3001.5501 3.安装Publish over SSH插件 4.配置SSH Servers 安装完Publish over…

C++蓝桥杯贪心算法

目录 🌼一,1812: [NewOJ Week 5] 排列变换 🌼二,1827: [NewOJ Week 8] 升降数字 🌼三,剑指offer 10-II 青蛙跳台阶问题 🌼四,P1223 排队接水 🌼五,P5650…

npm常用命令

目录1. 构建项目2. 安装包3. 查看安装目录4. 卸载包5. 更新包6. 查看已安装的包7. 使用国内npm镜像源8. 使用yarn1. 构建项目 npm init # 全部使用默认配置 npm init --yes2. 安装包 # 全局安装 npm install 包名 -g # 本地安装 npm install 包名 # 一次安装多个 npm install…

ROS移动机器人开发——硬件引脚

我们使用的32开发板为冰达机器人官方的开发板,类型为STM32RCT6。32章节的目的为,将官方所给源码转化为 官方标准库函数来进行使用 —————————————— 需求提出: 电源 1. 3.3V-200ma供电 2. 输入 9-12.6V 5A 控制&#xff1a…

(十三)JAVA基础语法

目录 前言: 一、包 二、权限修饰符 三、final关键字 四、常量 五、枚举 六、抽象类 七、抽象类:模板方法模式 八、接口 前言: ①包: 在编写Java程序时,随着程序架构越来越大,类的个数也越来越多,这时就会发现管理程序中维护类名称也…

利用OpenCV的函数calcHist()计算出图像的直方图数据后绘制图像的直方图

利用OpenCV的函数calcHist()计算出图像的直方图数据后绘制图像的直方图 在上一篇博文 https://www.hhai.cc/thread-200-1-1.html 中已经对OpenCV的直方图计算函数calcHist()进行了详细介绍。 这篇博文介绍如何用直方图数据绘制直方图。 OpenCV是没有统计图绘制的相关函数的&a…

Verilog语法笔记(夏宇闻第三版)-循环语句

目录 forever语句: repeat语句: while语句: for语句: 在Verilog HDL中存在着四种类型的循环语句,用来控制执行语句的执行次数。 1) forever 连续的执行语句。 2) repeat 连续执行一条语句 n 次。 3) while 执行一条语句直到某个条件不满足。如果一开始条件即…

数据异动分析方法论

注:本文首发于公众号:书剑双修,欢迎关注。 数据异动分析是一类典型的数据分析问题,也是分析师日常工作中会频繁遇到的问题。很多的数据分析面试过程中,都会对这个方面进行考察,以此来判断分析师思考问题的全…

使用IIS服务器搭建一个网站

1、什么是IISIIS全称为Internet Information Services,是一种Web服务组件。通过在自己电脑上安装好IIS服务,就可以把你自己的电脑当作一个网站的服务器。2、搭建一个IIS2.1、开启windows的IIS服务Step1、控制面板——程序——程序和功能——启用或关闭wi…

微软的COM、DOM和COM+

纯粹的为了记录一下 COM 组件对象模型(COM),是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起…

大数据NiFi(九):NiFi集群页面的添加、配置处理器操作

文章目录 NiFi集群页面的添加、配置处理器操作

jdb2/kworker

测试代码出自&#xff1a;块设备IO优化的典型案例分析_papaofdoudou的博客-CSDN博客_kworker/u2:2-2- #include <stdio.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/ioctl.h> #include <unistd.h&g…

基础算法 - 常见算法模板题(最简洁写法)【下】

目录 双指针 最长连续不重复子序列​编辑 二进制中1的个数 离散化 区间和 区间合并 双指针 最长连续不重复子序列 思路&#xff1a; 设左右指针 j&#xff0c;i&#xff1b;用 i 遍历数组&#xff0c;对【j&#xff0c;i】范围路径数值出现次数记录若次数大于1&#xff0c;则…

Seata-go 发布 1.0.3,补齐 AT 模式

文&#xff5c;赵新&#xff08;花名&#xff1a;于雨 )蚂蚁集团 Seata 项目开源负责人本文 3902 字 阅读 10 分钟发布概览Seata-go 1.0.3 版本补齐了 AT 模式下对 Insert/Delete 的支持&#xff0c;这意味着除了 “select for update” 外&#xff0c;Seata-go 的 AT 模式与 S…

【c++】 STL的组件简介与容器的使用时机

STL六大组件简介 STL提供了六大组件&#xff0c;彼此之间可以组合套用&#xff0c;这六大组件分别是:容器、算法、迭代器、仿函数、适配器&#xff08;配接器&#xff09;、空间配置器。 容器&#xff1a;各种数据结构&#xff0c;如vector、list、deque、set、map等,用来存放…

ECS概述

1.ECS概述ECS全称Entity-Component-System&#xff08;实体-组件-系统&#xff09;&#xff0c;是基于组合优于继承&#xff08;将不变的部分使用继承以方便复用&#xff0c; 将多变的部分用组合来方便拓展&#xff09;的原则的一种模式&#xff0c;游戏中的每一个单元&#xf…

使用Redis踩过的16个坑

如果你在使用 Redis 时,也遇到过以下这些「诡异」的场景,那很大概率是踩到「坑」了: 明明一个 key 设置了过期时间,怎么变成不过期了? 使用 O(1) 复杂度的 SETBIT 命令,Redis 竟然被 OOM 了? 执行 RANDOMKEY 随机拿出一个 key,竟然也会阻塞 Redis? 同样的命令,为什么…

Linux基础命令学习(Bandit通关)(未完成)

一、前言 Bandit是一个学习Linux的网站&#xff0c;它采用游戏通关的方式来帮助我们学习linux基本使用的命令&#xff0c;十分适合没有基础或基础较弱的同学学习。【虽然是英文但是很容易&#xff0c;用翻译也可】 官网地址是&#xff1a;OverTheWire: Bandit 二、第一~六关…

自从用了这个良心浏览器后,我卸载了UC,太香了

要是以前如果有人问我手机上用什么浏览器好&#xff0c;我肯定一律无脑推荐UC浏览器。一方面它确实功能强大&#xff0c;另一方面是用了很多年已经习惯了&#xff0c;有感情因素在。然而&#xff0c;这次可能要打自己的脸了。 最近&#xff0c;有了个“新欢”&#xff0c;其实…