打印本文 打印本文 关闭窗口 关闭窗口
SGIP的delphi原码
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3513  更新时间:2009/4/23 18:39:04  文章录入:mintao  责任编辑:mintao
******************响应bind请求错误***********************'''');
      exit;
    end;
  end
  else
  if commandI=SGIP_DELIVER then
  begin
    memo1.Lines.Add(''''********************接收到SGIP_DELIVER请求********************'''');
    DeSize:=SizeOf(cDeliver);
    FillChar(cDeliver,SizeOf(cDeliver),0);
    FillChar(cDeliver_Resp,SizeOf(cDeliver_Resp),0);
    RecvSize2:=Socket.ReceiveBuf(cDeliver,MessageSize-RecvSize1);
    if (RecvSize2+RecvSize1)<>MessageSize then
    begin
      memo1.Lines.Add(''''**********************SGIP_DELIVER数据接收错误*******************'''');
      exit;
    end;
    RecvSize2:=0;RecvSize1:=0;
    cHead.CommandId:=htonl(SGIP_DELIVER_RESP);
    cHead.MessageLength:=htonl(sizeof(cHead)+sizeof(cDeliver_Resp));
    cDeliver_Resp.Result:=0;
    RecvSize1:=Socket.SendBuf(cHead,SizeOf(cHead));
    RecvSize2:=Socket.SendBuf(cDeliver_Resp,SizeOf(cDeliver_Resp));
    if (RecvSize1+RecvSize2)<>ntohl(cHead.MessageLength) then
    begin
      memo1.Lines.Add(''''**********************响应SGIP_DELIVER请求错误***********************'''');
      exit;
    end;
  end
  else
  if commandI=SGIP_UNBIND then
  begin
    cHead.CommandId:=htonl(SGIP_UNBIND_RESP);
    cHead.MessageLength:=htonl(sizeof(cHead));
    memo1.Lines.Add(''''响应SGIP_UNBIND***************************'''');
    RecvSize2:=Socket.SendBuf(cHead,sizeOf(cHead));
    if RecvSize2<>ntohl(cHead.MessageLength) then
    begin
      memo1.Lines.Add(''''**********************SGIP_UNBIND发送错误*****************'''');
      exit;
    end;
  end
  else
  begin
  end;
end;
end.

 

 

//..............................................................
file://协议
unit xy;

interface
uses
  SysUtils;
const                                      
  SGIP_BIND             =$1;            file://对客户端验证
  SGIP_BIND_RESP =$80000001;     file://服务端返回验证请求
  SGIP_UNBIND         =$2;            file://断开连接
  SGIP_UNBIND_RESP      =$80000002;     file://返回断开连接状态
  SGIP_SUBMIT         =$3;            file://向SMG提交MT短消息
  SGIP_SUBMIT_RESP      =$80000003;     file://返回SP提交MT短消息状态
  SGIP_DELIVER         =$4;            file://SMG向SP发送一条MO短消息
  SGIP_DELIVER_RESP     =$80000004;     file://返回SMG状态
  SGIP_REPORT         =$5;            file://向SP发送一条先前的submit命令的当前状态
  SGIP_REPORT_RESP =$80000005;     file://响应SMG状态
  file://以下协议对SP无用
  SGIP_ADDSP         =$6;            //
  SGIP_ADDSP_RESP =$80000006;     //
  SGIP_MODIFYSP         =$7;            //
  SGIP_MODIFYSP_RESP =$80000007;     //
  SGIP_DELETESP         =$8;            //
  SGIP_DELETESP_RESP =$80000008;     //
  SGIP_QUERYROUTE =$9;            //
  SGIP_QUERYROUTE_RESP =$80000009;     //
  SGIP_ADDTELESEG =$a;            //
  SGIP_ADDTELESEG_RESP =$8000000a;     //
  SGIP_MODIFYTELESEG =$b;            //
  SGIP_MODIFYTELESEG_RESP =$8000000b;     //
  SGIP_DELETETELESEG =$c;                    //
  SGIP_DELETETELESEG_RESP =$8000000c;     //
  SGIP_ADDSMG         =$d;            //
  SGIP_ADDSMG_RESP =$8000000d;     //
  SGIP_MODIFYSMG =$e;            //
  SGIP_MODIFYSMG_RESP =$0000000e;     //
  SGIP_DELETESMG =$f;            //
  SGIP_DELETESMG_RESP =$8000000f;     //
  SGIP_CHECKUSER =$10;           //
  SGIP_CHECKUSER_RESP =$80000010;     //
  SGIP_USERRPT         =$11;           //
  SGIP_USERRPT_RESP =$80000011;     //
  SGIP_TRACE         =$1000;         //
  SGIP_TRACE_RESP =$80001000;     //
type
  TEMPTY=Record file://空纪录
  end;
  file://消息头
  SGIPHead=Record
    MessageLength       :longword;              file://消息的总长度(字节)
    CommandId           :longword;              file://命令ID
    SNumber1,SNumber2,SNumber3:longword;        file://序列号
  end;
  file://消息体
  XBind=Record                            //
    LonginType          :byte;
    LonginPass          :array[0..15] of char;
    LonginName          :array[0..15] of char;
    Reserve             :array[0..7] of char;
  end;
  Bind_Resp=Record
    Result              :byte;
    Reserve             :array[0..7] of char;
  end;
  //
  Unbind=TEMPTY;
  Unbind_Resp=TEMPTY;
  //
  TelCount=record                     file://手机号码
    TelN  :array[0..20] of char;
  end;
  XSubmit=Record
    SPNumber            :array[0..20] of char;
    ChargeNumber        :array[0..20] of char;
    UserCount           :byte;               file://1-100
    UserNumber          :array[0..20] of char;//TelCount;  file://长度为UserCount
    CorpID              :array[0..4] of char;
    ServiceType         :array[0..9] of char;
    FeeType             :byte;
    FeeValue            :array[0..5] of char;
    GivenValue          :array[0..5] of char;
    AgentFlag           :byte;
    MOrelatetoMTFlag    :byte;
    Priority            :

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

打印本文 打印本文 关闭窗口 关闭窗口