期货量化交易客户端开源教学第九节——新用户注册

news/2024/9/11 3:44:26/ 标签: 开源

一、新用户注册界面设计:

        注册时采用手机号注册,客户端发送新号注册申请由后台做审核,后台审核通过后向注册的手机号发送注册成功的消息。注册过的手机号不能再二次注册。

界面验证代码

private{ Private declarations }FVerf: AnsiString; {验证码}FPhone: AnsiString; {手机号}FTime: Integer;public{ Public declarations }FClientSocket: TClientSocket;procedure logindone(returnstr: AnsiString); {处理返回结构 }end;varFrmReg: TFrmReg;implementation
usesuGlobalvariable, uTCP_Client_Service, md5jm, uLogin;{$R *.fmx}procedure TFrmReg.BtnOKClick(Sender: TObject);
varVtcp_client_service : TTCP_client_service;data_stream : TMemoryStream;data_strstrea : TStringStream;restr,cmd_id: AnsiString;
beginif (Length(Trim(EdtPhone.Text)) <> 11) or (Trim(EdtPhone.Text) <> FPhone) thenbeginMessageBox(0,'手机号输入错误','提示',MB_OK + MB_ICONHAND);Exit;end;if Trim(EdtPWD.Text) <> Trim(EdtPWD2.Text) thenbeginMessageBox(0,'两次输入的密码不一致','提示',MB_OK + MB_ICONHAND);Exit;end;if Length(Trim(EdtName.Text)) > 4 thenbeginMessageBox(0,'姓名长度错误','提示',MB_OK + MB_ICONHAND);Exit;end;if (Trim(EdtPhone.Text) = '') or (Trim(EdtPWD.Text) = '') or(Trim(EdtPWD2.Text) = '') or (Trim(EdtVerf.Text) = '') or(Trim(EdtName.Text) = '') thenbeginMessageBox(0,'内容不能为空','提示',MB_OK + MB_ICONHAND);Exit;end;if Trim(EdtVerf.Text) <> FVerf thenbeginMessageBox(0,'验证码错误','提示',MB_OK + MB_ICONHAND);Exit;end;

二、新用户注册接口协议

1、 向服务端发送指令
  {用户注册(301)(实盘数据库注册指令)

发送:300;用户bh;md5密码;姓名;
      返回:300;0;错误提示;
            300;1;注册成功!;}
  {用户注册(301)(模拟数据库注册指令)
      发送:301;用户bh;md5密码;姓名;
      返回:301;0;错误提示;
            301;1;}

2、注册发送协议:

BtnOK.Enabled := False;data_stream := TMemoryStream.Create;data_strstrea := TStringStream.Create;trycmd_id := '300';restr := cmd_id + ';' + Trim(EdtPhone.Text) + ';' +md5jm.MD5Print( MD5String( Trim(EdtPWD.Text) ) ) + ';' +Trim(EdtName.Text) + ';';data_strstrea.WriteString(restr);data_stream.LoadFromStream( data_strstrea );{创建TCP连接对象}Vtcp_client_service := TTCP_client_service.Create(nil);Vtcp_client_service.Socket_LB := 2;Vtcp_client_service.FCMD_data.LoadFromStream( data_stream ); {业务指令数据流}{开始连接}if not Vtcp_client_service.open_service thenbegin{启动TCP连接失败}ShowMessage('连接失败!');end;


http://www.ppmy.cn/news/1475384.html

相关文章

【QT】布局管理器

布局管理器 布局管理器1. 垂直布局2. 水平布局3. 网格布局4. 表单布局5. Spacer 布局管理器 之前使⽤ Qt 在界⾯上创建的控件, 都是通过 “绝对定位” 的⽅式来设定的&#xff1b;也就是每个控件所在的位置, 都需要计算坐标, 最终通过 setGeometry 或者 move ⽅式摆放过去。 …

java 前端上传文件后端解析并转发到第三方存储,Hutool 工具

单个文件上传 PostMapping("/upload")public MyResponse<?> upload(MultipartFile file) {if (multipartFiles null || multipartFiles.length 0) {throw new MessageException("未选择文件");}InputStreamResource inputStreamResource new Inp…

实用教程:用 Go 的 net/textproto 包优化文本协议处理

实用教程&#xff1a;用 Go 的 net/textproto 包优化文本协议处理 介绍准备工作环境设置Go 基础回顾 基础使用创建连接发送请求接收响应 高级特性处理 MIME 头多行响应的管理错误处理与调试 实战案例实现一个简单的邮件客户端实现一个基于 net/textproto 的命令行工具 最佳实践…

从零开始开发视频美颜SDK:实现直播美颜效果

因此&#xff0c;开发一款从零开始的视频美颜SDK&#xff0c;不仅可以节省成本&#xff0c;还能根据具体需求进行个性化调整。本文将介绍从零开始开发视频美颜SDK的关键步骤和实现思路。 一、需求分析与技术选型 在开发一款视频美颜SDK之前&#xff0c;首先需要进行详细的需求…

WPF界面设计-更改按钮样式 自定义字体图标

一、下载图标文件 iconfont-阿里巴巴矢量图标库 二、xaml界面代码编辑 文件结构 &#xe653; 对应的图标代码 Fonts/#iconfont 对应文件位置 <Window.Resources><ControlTemplate TargetType"Button" x:Key"CloseButtonTemplate"…

数据结构与算法基础-学习-37-平衡二叉树(Avl树)之删除节点

目录 一、知识点回顾 1、二叉搜索树&#xff08;BST&#xff09; 2、平衡二叉树&#xff08;Avl树&#xff09;之查找 二、环境信息 三、实现思路 1、示例图 2、查询 3、删除 &#xff08;1&#xff09;叶子节点&#xff08;无子树节点&#xff09; &#xff08;2&am…

如何为IP申请SSL证书

目录 以下是如何轻松为IP地址申请SSL证书的详细步骤&#xff1a; 申请IP证书的基本条件&#xff1a; 申请IP SSL证书的方式&#xff1a; 确保网络通信安全的核心要素之一&#xff0c;是有效利用SSL证书来加密数据传输&#xff0c;特别是对于那些直接通过IP地址访问的资源。I…

同步的艺术:Conda包依赖的自动同步策略

同步的艺术&#xff1a;Conda包依赖的自动同步策略 引言 在复杂的软件开发项目中&#xff0c;依赖管理是确保项目顺利进行的关键环节。Conda作为Python和其他科学计算语言的强大包管理器&#xff0c;提供了依赖同步功能&#xff0c;帮助用户自动化和简化依赖项的同步过程。本…

Oracle数据文件扩容

1、增加数据文件扩容 ALTER TABLESPACE app_data ADD DATAFILE D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF SIZE 30G AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED; ALTER database datafile /ora/oradata/radius/undo.dbf resize 32G; alter tablespace sysaux add …

WEB安全-文件上传漏洞

1 需求 2 接口 move_uploaded_file basename pathinfo strtolower htmlspecialchars move_uploaded_file() 是 PHP 中的一个函数&#xff0c;它用于将临时文件移动到新位置。这个函数特别在文件上传处理中非常有用&#xff0c;因为它允许你将用户上传的文件从 PHP 的临时存…

AIGC学习笔记—LLM(前言)

大语言模型本身我不是很了解&#xff0c;但是掌握一些基础的知识点&#xff0c;由于要准备某个公司的二面&#xff0c;所以浅学一下这个技术&#xff0c;也是边摸索边学习...... 首先&#xff0c;我先简单的解释一下大模型&#xff0c;大模型是指具有大规模参数和复杂计算结构…

【新书速递】使用MATLAB进行雷达系统分析和设计(第四版)(2022)

来源&#xff1a;公众号高山防务 一、目录 目录 1雷达定义和术语 1.1雷达系统分类和波段 1.1.1高频&#xff08;HF&#xff09;和甚高频&#xff08;VHF&#xff09;雷达&#xff08;A和B波段&#xff09; 1.1.2超高频&#xff08;UHF&#xff09;雷达&#xff08;C波段&am…

sqlserver 自动编号初始化

在SQL Server中&#xff0c;可以使用IDENTITY属性来创建一个自动增长的序列&#xff0c;这通常用于主键。在创建表时&#xff0c;可以指定某一列为IDENTITY列&#xff0c;并给出起始值和增量。 以下是一个创建表并使用IDENTITY属性初始化自动编号的示例&#xff1a; CREATE T…

Three.js机器人与星系动态场景(四):封装Threejs业务组件

实际在写业务的时候不会在每个组件里都写几十行的threejs的初始化工作。我们可以 将通用的threejs的场景、相机、render、轨道控制器等进行统一初始化。同时将非主体的函数提到组件外部&#xff0c;通过import导入进组件。将业务逻辑主体更清晰一些。下面的代码是基于reactthre…

[计网初识1] TCP/UDP

学习内容 1.TCP建立链接的3次握手&#xff0c;断开连接的4次挥手 2.TCP报文段组成 内容 1.TCP 建立连接的3次握手? 假设主动方是客户端&#xff0c;被动方是服务端。 第一次 客户端给服务端发送 “hello,我是客户端” (TCP段中 SYN1) 第二次 服务端给客户端发送"我接…

C# 建造者模式(Builder Pattern)

建造者模式&#xff08;Builder Pattern&#xff09;&#xff0c;也被称为生成器模式&#xff0c;是一种对象构建模式&#xff0c;旨在将复杂对象的构建过程与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。这种模式特别适用于构建具有多个组成部分的复杂对象&am…

centos单机配置多个内网IP地址

centos单机配置多个内网IP地址 引配置1. 查看当前网络IP配置2. 打开网络配置目录3. 设置静态IP4. 编辑ifcfg-eno1:15. 重启网络配置 引 同一个局域网&#xff0c;但是对接的多个子系统使用了不同的网段&#xff0c;如一个系统主机IP地址是192.168.10.1&#xff0c;另一个系统主…

智能制造热点词汇科普篇——工业微服务

随着互联网技术的不断发展&#xff0c;近十年来&#xff0c;微服务也逐渐走进人们的视线中来。何为微服务&#xff1f;让我们先来看看百度百科上的定义&#xff1a;微服务&#xff08;或称微服务架构&#xff09;是一种云原生架构方法&#xff0c;在单个应用中包含众多松散耦合…

java Web 优秀本科毕业论文系统用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 优秀本科毕业论文系统是一套完善的web设计系统&#xff0c;对理解JSP java serlvet 编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发&#xff0c;数据库为Mysql5.0&a…

微服务-初级篇

微服务-初级篇 认识微服务1.1 单体架构1.2 分布式架构1.3 微服务 SpringCloud2.1 了解2.2 服务拆分原则2.3 服务拆分效果 Nacos注册中心3.1 认识和安装Nacos3.1.1 Nacos下载3.1.2 Nacos安装 3.2 服务注册到Nacos Feign远程调用4.1 Feign引入4.2 Feign配置 认识微服务 1.1 单体…