期货量化交易客户端开源教学第八节——登陆设计开发附原码

一、登陆页面设计

         界面采用delphi XE8自带控件,界面可按需求自行设计。连接服务器以接口命令格式加密发送,在返回的数据进行解密处理。发送前需要先获取本地IP和软件当前版本号,当版本不是最新的情况下进行更新到最新版本。

 二、设计多服务器选择窗口。

         多服务器的情况下,先判断当前连接的服务器中连接速度最快的服务器,并设定为连接对像。

三、定义服务器连接地址,并设定有效端口。

1、定义服务器IP及端口。

HYINFO_URL = 'http://heyue.com:8080/churu/heyue_moni.php';  {合约资料网址}
  HOSTIP = '127.0.0.1'; 
  NETWORK_PORT:array[0..4] of Integer = (9201,9202,9203,9204,9205);
  NETWORK_PORT_BACKUP: array[0..4] of Integer = (9206,9207,9208,9209,9210);
  NETWORK_PORT_MARKET: array[0..1] of Integer = (9200,9211);
  NETWORK_PORT_QUERY = 9527;
  ChuJinHttp=' ';
  RuJinHttp=' ';
  APPTITLE = '忠习财富实盘';

2、定义多服务器选择

procedure Tnetworkset.ManyIPAddress;
begin
  FnetaddressList[0].no := 0;
  FnetaddressList[0].name := '江西联通';
  FnetaddressList[0].socket_port := random_port(NETWORK_PORT); {获取随机端口号}
  FnetaddressList[0].socket_port_market := random_port(NETWORK_PORT_MARKET);
  FnetaddressList[0].domain := 'http://127.0.0.1:'+VER_HTTPPOST; 
  FnetaddressList[0].yuming := 'http://127.0.0.1';
  FnetaddressList[0].singledomain:='127.0.0.1';
  FnetaddressList[0].ip :=  FnetaddressList[0].singledomain;

  FnetaddressList[1].no := 1;
  FnetaddressList[1].name := '湖南电信';
  FnetaddressList[1].socket_port := random_port(NETWORK_PORT); {获取随机端口号}
  FnetaddressList[1].socket_port_market := random_port(NETWORK_PORT_MARKET);
  FnetaddressList[1].domain := 'http://127.0.0.2:'+VER_HTTPPOST;
  FnetaddressList[1].yuming := 'http://127.0.0.2';
  FnetaddressList[1].singledomain:='127.0.0.2';
  FnetaddressList[1].ip :=  FnetaddressList[1].singledomain  ;

end;

procedure Tnetworkset.OneIPAddress;
begin
  FnetaddressList[0].no := 0;
  FnetaddressList[0].name := '江西联通';
  FnetaddressList[0].socket_port := random_port(NETWORK_PORT); {获取随机端口号}
  FnetaddressList[0].socket_port_market := random_port(NETWORK_PORT_MARKET);
  FnetaddressList[0].domain := 'http://' + HOSTIP + ':' + VER_HTTPPOST;  //42.51.136.67
  FnetaddressList[0].yuming := 'http://' + HOSTIP;
  FnetaddressList[0].singledomain := HOSTIP;
  FnetaddressList[0].ip :=  FnetaddressList[0].singledomain;

  FnetaddressList[1].no := 1;
  FnetaddressList[1].name := '湖南电信';
  FnetaddressList[1].socket_port := random_port(NETWORK_PORT); {获取随机端口号}
  FnetaddressList[1].socket_port_market := random_port(NETWORK_PORT_MARKET);
  FnetaddressList[1].domain := 'http://' + HOSTIP + ':' + VER_HTTPPOST;  //42.51.136.67
  FnetaddressList[1].yuming := 'http://' + HOSTIP;
  FnetaddressList[1].singledomain := HOSTIP;
  FnetaddressList[1].ip :=  FnetaddressList[1].singledomain  ;

四、用户登录

向服务器发送连接请求,连接时需要向服务器发送心跳包判断是否连接。
  格式:
      发送:10;编号;md5密码;IP地址;版本号;
      返回:10;0;错误提示;
            10;1;用户ID;姓名;随机码;策略启用标志;跟单数量;
            账户余额;冻结金额;浮动盈亏;上次结算准备金;今日入金;今日出金;今日调整;今日划拨;今日货币转换;平仓盈亏;手续费;延期费;风险金;隔夜风险金;
            。。。。。。。。。。
            多币种循环 

           10;1用于后期数据判断使用

restr := '10' + ';' + VGUserInfo.bh + ';' + VGUserInfo.passwd + ';' +
        VGUserInfo.local_ip + ';' + GetBuildInfo_Version + ';';
      data_strstrea.WriteString(restr);
      data_stream.LoadFromStream( data_strstrea );
      FCMD_data.LoadFromStream( data_stream );
    finally
      data_stream.Free;
      data_strstrea.Free;
    end;
  end;
  {发送指令}
  if FCMD_data.Size > 0 then
    tcppark_sendbyte(FCMD_data);
  {心跳包定时器启动}
  Timer_heatpack.Enabled := True;
  {重置重连次数和连接失败标志}
  FRetryCount := 0;
  IsConErr := False;
end;

  

  • 24
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

筱璦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值