转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
SGIP的delphi原码         ★★★★

SGIP的delphi原码

作者:闵涛 文章来源:闵涛的学习笔记 点击数:3519 更新时间:2009/4/23 18:39:04
bsp;        ''''+inttostr(ntohl(cHead.SNumber3)));
    memo1.Lines.Add(''''cBind.LonginType         ''''+inttostr(cBind_resp.Result));
    stream1.Free;
end;

procedure TForm1.Button4Click(Sender: TObject);
file://type
  {abc=packed record
    head:SGIPHead;
    submit:xSubmit;
  end;}
var
  FV_Date1_S,FV_Date2_S:string;
  i,SendSize:integer;
  file://xxx:abc;
  stream2:twinsocketstream;
  abc,bc:longword;
  line1,line2:longword;
begin
  stream2:=twinsocketstream.Create(clientsocket1.Socket,5000);
  SendSize:=0;
  memo1.Lines.Add(''''-------------------------submit--------------------------'''');
  if not ClientSocket1.Active then
  begin
    memo1.Lines.Add(''''-------------------客户端没有打开,submit失败-------------'''');
    exit;
  end;
  DateTimeToString(FV_Date1_S,''''mmddhhnnss'''',now);
  DateTimeToString(FV_Date2_S,''''zzz'''',now);
  FillChar(sSubmit,sizeof(sSubmit),0);
  FillChar(sHead,sizeof(sHead),0);
  with ssubmit do
  begin
    strpcopy(SPNumber,''''4488'''');//;
    ChargeNumber        :=''''8613188890924'''';
    UserCount           :=1;               file://1-100
    {for i:=1 to UserCount do
    begin
      file://strpcopy(UserNumber[i-1].TelN,''''8613065073355'''');//+T_Tel);//          :array of TelCount;  file://长度为UserCount
      UserNumber[i-1].TelN:=''''8613011725853'''';
    end;}
    UserNumber:=''''8613188890924'''';
    CorpID:=''''41027'''';//CorpID:=''''4488'''';//strpcopy(CorpID,FV_corpID);
    ServiceType:=''''4488'''';//FV_SPNumber);//''''4488'''';
    FeeType             :=1;
    FeeValue            :=''''0'''';
    GivenValue          :=''''0'''';
    AgentFlag           :=0;
    MOrelatetoMTFlag    :=2;
    Priority            :=0;
    ExpireTime          :='''''''';
    ScheduleTime        :='''''''';
    ReportFlag          :=1;
    TP_pid              :=0;
    tp_udhi             :=0;
    MessageCoding       :=15;
    MessageType         :=0;
    MessageLength       :=htonl(161);
    strpcopy(MessageContent,T_msg);  file://长度为  MessageLength;
    file://Reserve             :='''''''';
  end;
  {line1:=sizeof(sHead);
  line2:=sizeof(sSubmit);}
  with sHead do
  begin
    abc:=htonl(FV_SNumber);
    MessageLength:=htonl(sizeof(sHead)+sizeof(sSubmit)-3);
    CommandId:=htonl(SGIP_Submit);
    SNumber1:=abc;
    SNumber2:=htonl(StrToInt(FV_Date1_S));
    SNumber3:=htonl(StrToInt(FV_Date2_S));
  end;
  line1:=stream2.Write(shead,sizeof(shead));
  line2:=stream2.Write(sSubmit,sizeof(sSubmit)-3);
  if stream2.WaitForData(5000) then
  begin
    fillchar(cHead,sizeof(cHead),0);
    fillchar(cSubmit_Resp,sizeof(cSubmit_Resp),0);
    memo1.Lines.Add(''''read submit Head ..............'''');
    try
      stream2.ReadBuffer(cHead,sizeof(cHead));
      stream2.ReadBuffer(cSubmit_Resp,sizeof(cSubmit_Resp));
    except
      on e:exception do
      memo1.Lines.Add(e.Message);
    end;
    memo1.Lines.Add(''''read submit csubmit_resp ..............'''');
    file://stream2.ReadBuffer(cBind_Resp,sizeof(cBind_resp));
  end;
  stream2.Free;
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var
  commandI,PackSize:Longword;
  Recv1I,Recv2I:integer;
begin
  FillChar(sHead,sizeof(sHead),0);
  FillChar(sBind,sizeof(sBind),0);
  Recv1I:=socket.ReceiveBuf(sHead,sizeof(sHead));
  commandI:=ntohl(sHead.CommandId);
  PackSize:=ntohl(sHead.MessageLength);
  if commandI=SGIP_UNBIND_RESP then
  begin
    memo1.Lines.Add(''''------------------接收到SGIP_UNBIND_RESP请求------------------'''');
    exit;
  end;
  Recv2I:=socket.ReceiveBuf(sBind,sizeof(sBind));
  if commandI=SGIP_BIND_RESP then
    memo1.Lines.Add(''''---------------------SGIP_BIND_RESP------------------'''')
  else
  if commandI=SGIP_SUBMIT_RESP then
    memo1.Lines.Add(''''---------------------SGIP_SUBMIT_RESP----------------'''')
  else
    memo1.Lines.Add(''''---------------------''''+inttostr(commandI)+''''------------------'''');
  memo1.Lines.Add(''''MessageLength        ''''+inttostr(ntohl(sHead.MessageLength)));
  memo1.Lines.Add(''''CommandId            ''''+inttostr(commandI));
  memo1.Lines.Add(''''SNumber              ''''+inttostr(ntohl(sHead.SNumber1))+'''' ''''+
        inttostr(ntohl(sHead.SNumber2))+'''' ''''+inttostr(ntohl(sHead.SNumber3)));
  memo1.Lines.Add(''''Result               ''''+inttostr(sBind_Resp.Result));
  memo1.Lines.add(''''------------------end SGIP_UNBIND_RESP-------------------'''');
end;

procedure TForm1.Button7Click(Sender: TObject);
var
  FV_Date1_S,FV_Date2_S:string;
  stream3:TWinSocketStream;
begin
  Stream3:=TWinSocketStream.Create(clientSocket1.Socket,5000);
  memo1.Lines.Add(''''-------------------向服务端发送UnBIND请求--------------------'''');
  if not ClientSocket1.Active then
  begin
    memo1.Lines.Add(''''客户端没有打开'''');
    stream3.free;
    exit;
  end;
  DateTimeToString(FV_Date1_S,''''mmddhhnnss'''',now);
  DateTimeToString(FV_Date2_S,''''zzz'''',now);
  FillChar(sHead,sizeof(sHead),0);
  sHead.MessageLength:=htonl(sizeof(sHead));
  sHead.CommandId:=htonl(SGIP_UNBIND);
  sHead.SNumber1:=htonl(FV_SNumber);
  sHead.SNumber2:=htonl(StrToInt(FV_Date1_S));
  sHead.SNumber3:=htonl(StrToInt(FV_Date2_S));
  stream3.Write(sHead,20);
  FillChar(sHead,20,0);
  if stream3.WaitForData(5000) then
  begin
    stream3.ReadBuffer(sHead,20);
  end;
  stream3.Free;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
  var
    RecvSize1,RecvSize2,DeSize:integer;
    commandI,MessageSize:LongWord;
begin
  RecvSize1:=0;
  RecvSize2:=0;
  FillChar(cHead,SizeOf(cHead),0);

  RecvSize1:=socket.ReceiveBuf(cHead,SizeOf(cHead));
  commandI:=ntohl(cHead.CommandId);
  MessageSize:=ntohl(cHead.MessageLength);
  if commandI=SGIP_BIND then
  begin
    memo1.Lines.Add(''''*********************接收到Bind请求*********************'''');
    FillChar(cBind,SizeOf(cBind),0);
    FillChar(cBind_Resp,SizeOf(cBind_Resp),0);
    RecvSize2:=Socket.ReceiveBuf(cBind,MessageSize-RecvSize1);
    if (RecvSize2+RecvSize1)<>MessageSize then
    begin
      memo1.Lines.Add(''''**********************bind数据接收错误*******************'''');
      exit;
    end;
    RecvSize2:=0;RecvSize1:=0;
    cHead.CommandId:=htonl(SGIP_BIND_RESP);
    cHead.MessageLength:=htonl(sizeof(cHead)+sizeof(cBind_Resp));
    cBind_Resp.Result:=0;
    RecvSize1:=Socket.SendBuf(cHead,SizeOf(cHead));
    RecvSize2:=Socket.SendBuf(cBind_Resp,SizeOf(cBind_Resp));
    if (RecvSize1+RecvSize2)<>ntohl(cHead.MessageLength) then
    begin
      memo1.Lines.Add(''''****

上一页  [1] [2] [3] [4] [5]  下一页


[系统软件]InstallShield Express for delphi制作安装程序定…  [常用软件]InstallShield Express制作Delphi数据库安装程序
[Delphi程序]为什么选择Delphi.Net ?  [Delphi程序]《关于VisiBroker For Delphi的使用》(4)
[Delphi程序]Delphi 程序员代码编写标准指南  [Delphi程序]转贴:Conversion to Delphi 6: Missing unit Pro…
[Delphi程序]Borland Delphi 9 的新特性  [Delphi程序]Delphi 键盘码表
[Delphi程序]Chuck Jazdzewski的离开意味着Delphi的终结吗?  [Delphi程序]Delphi Access violations 问题的解决之道
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台