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

SGIP的delphi原码

作者:闵涛 文章来源:闵涛的学习笔记 点击数:3516 更新时间:2009/4/23 18:39:04
byte;
    ExpireTime          :array[0..15] of char;
    ScheduleTime        :array[0..15] of char;
    ReportFlag          :byte;
    TP_pid              :byte;
    TP_udhi             :byte;
    MessageCoding       :byte;
    MessageType         :byte;
    MessageLength       :longword;
    MessageContent      :array[0..160] of char;  file://长度为  MessageLength;
    Reserve             :array[0..7] of char;
  end;
  Submit_Resp=Record
    Result              :byte;
    Reserve             :array[0..7] of char;
  end;
  //
  XDeliver=Record
    UserNumber          :array[0..20] of char;
    SPNumber            :array[0..27] of char;
    {TP_pid              :byte;
    TP_udhi             :byte;
    MessageCoding       :byte;
    MessageLength       :longword;}
    MessageContent      :array[0..254] of char;  file://长度为  MessageLength;
    Reserver            :array[0..7] of char;
  end;
  Deliver_Resp=Record
    Result              :byte;
    Reserve             :array[0..7] of char;
  end;

  //
  XReport=Record
    SubSequNumber1,SubSequNumber2,SubSequNumber3        :longword;
    ReportType          :byte;
    UserNumber          :array[0..20] of char;
    State               :byte;
    ErrorCode           :byte;
    Reserve             :array[0..7] of char;
  end;
  Report_Resp=Record
    Result              :byte;
    Reserve             :array[0..7] of char;
  end;

implementation
end.

 


file://、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、//
服务端
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, xy, ScktComp, StdCtrls,winsock;

type
 
  TForm1 = class(TForm)
    Memo1: TMemo;
    ServerSocket1: TServerSocket;
    procedure ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ServerSocket1ClientError(Sender: TObject;
      Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
      var ErrorCode: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
  type
    SendPack = packed record
      head:  SGIPHead;
      resp:  Bind_Resp;
    end;
  var
    ReHead:SGIPHead;
    sresp:Bind_Resp;
    ReBind:xBind;
    ReDeliver:XDeliver;
    ReReport:XReport;
    i1,i2:integer;
    str:string;
    S_Number1,S_Number2,S_Number3,longI1:longword;
    s_Pack:SendPack;
begin
  fillchar(sresp,sizeof(sresp),0);
  fillchar(ReHead,sizeof(ReHead),0);
  i1:=Socket.ReceiveBuf(ReHead,sizeof(ReHead));
  if i1<>sizeof(ReHead) then
  begin
    memo1.Lines.Add(''''Recv message Error exit'''');
    exit;
  end;
  S_Number1:=ReHead.SNumber1;
  S_Number2:=ReHead.SNumber2;
  S_Number3:=ReHead.SNumber3;
  ReHead.MessageLength:=ntohl(ReHead.MessageLength);
  ReHead.CommandId:=ntohl(ReHead.CommandId);
  ReHead.SNumber1:=ntohl(ReHead.SNumber1);
  ReHead.SNumber2:=ntohl(ReHead.SNumber2);
  ReHead.SNumber3:=ntohl(ReHead.SNumber3);
  memo1.Lines.Add(''''read SMG message'''');
  memo1.Lines.Add(inttostr(ReHead.MessageLength));
  memo1.Lines.Add(inttostr(ReHead.CommandId));
  memo1.Lines.Add(inttostr(ReHead.SNumber1));
  memo1.Lines.Add(inttostr(ReHead.SNumber2));
  memo1.Lines.Add(inttostr(ReHead.SNumber3));
  if ReHead.CommandId=SGIP_UNBIND then
  begin            file://断开连接
    FillChar(ReHead,SizeOf(ReHead),0);
    ReHead.MessageLength:=htonl(SizeOf(ReHead));
    ReHead.CommandId:=htonl(SGIP_UNBIND_RESP);
    ReHead.SNumber1:=S_Number1;
    ReHead.SNumber2:=S_Number2;
    ReHead.SNumber3:=S_Number3;
    i1:=socket.SendBuf(ReHead,sizeof(ReHead));
    if i1<>sizeof(ReHead) then
      memo1.Lines.Add(''''Send SGIP_UNBIND_Resp Error'''')
    else
      memo1.Lines.Add(''''Send SGIP_UNBIND_Resp OK'''');
  end
  else if ReHead.CommandId=SGIP_BIND then
  begin           file://SMG向SP发送一条MO短消息
    FillChar(s_Pack,SizeOf(s_Pack),0);
    FillChar(ReBind,SizeOf(ReBind),0);
    socket.ReceiveBuf(ReBind,SizeOf(ReBind));
    s_Pack.head.MessageLength:=htonl(SizeOf(s_Pack));
    s_Pack.head.CommandId:=htonl(SGIP_BIND_RESP);
    s_Pack.head.SNumber1:=S_Number1;
    s_Pack.head.SNumber2:=S_Number2;
    s_Pack.head.SNumber3:=S_Number3;
    s_Pack.resp.Result:=0;
    i1:=socket.SendBuf(s_Pack,SizeOf(s_Pack));
    if i1<>SizeOf(s_Pack) then
      memo1.Lines.Add(''''send SGIP_Bind_Resp Error'''')
    else
      memo1.Lines.Add(''''Send SGIP_bind_Resp'''');
  end
  else if ReHead.CommandId=SGIP_DELIVER then
  begin
    FillChar(s_Pack,SizeOf(s_Pack),0);
    FillChar(ReDeliver,SizeOf(ReDeliver),0);
    Socket.ReceiveBuf(ReDeliver,SizeOf(ReDeliver));
    s_Pack.head.MessageLength:=htonl(SizeOf(s_Pack));
    s_Pack.head.CommandId:=htonl(SGIP_DELIVER_RESP);
    s_Pack.head.SNumber1:=S_Number1;
    s_Pack.head.SNumber2:=S_Number2;
    s_Pack.head.SNumber3:=S_Number3;
    s_Pack.resp.Result:=0;
    if socket.SendBuf(s_Pack,SizeOf(s_Pack)) <>SizeOf(s_Pack) then
      memo1.Lines.Add(''''send SGIP_DELIVER_RESP Error'''')
    else
      memo1.Lines.Add(''''Send SGIP_DELIVER_RESP OK'''');
    memo1.Lines.Add(ReDeliver.UserNumber);
    memo1.Lines.Add(ReDeliver.SPNumber);
    file://longI1:=ntohl(ReDeliver.MessageLength);
    file://memo1.Lines.Add(inttostr(longI1)+''''   ''''+inttostr(ReDeliver.MessageLength));
    memo1.Lines.Add(ReDeliver.MessageContent);
  end
  else  if ReHead.CommandId=SGIP_REPORT then
  begin
    FillChar(s_Pack,SizeOf(s_Pack),0);
    FillChar(ReReport,SizeOf(ReReport),0);
    Socket.ReceiveBuf(ReReport,SizeOf(ReReport));
    s_Pack.head.MessageLength:=htonl(SizeOf(s_Pack));
    s_Pack.head.CommandId:=htonl(SGIP_REPORT_RESP);
    s_Pack.head.SNumber1:=S_Number1;
    s_Pack.head.SNumber2:=S_Number2;
    s_Pack.head.SNumber3:=S_Number3;
    s_Pack.resp.Result:=0;
  

上一页  [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……
    咸宁网络警察报警平台