亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sp_smg_dll.pas

?? SPIG1.1.rar SPIG接口協議
?? PAS
字號:
unit SP_SMG_DLL;

interface

uses
  Windows, Forms, SysUtils, Classes, Registry, Math, Gauges, WinSock, ComCtrls,
  StdCtrls, ShellApi, ExtCtrls;

const
  AccessFial = $0001;
  ErrSvcType = $0002;

 //Report包結構
type
  ReportStr = packed Record
    SequenceNumber1: LongInt;
    SequenceNumber2: LongInt;
    SequenceNumber3: LongInt;
    UserNumber: packed array[0..21] of Char;
    State: Char;
    ErrCode: Char;
end;

//Deliver包結構
type
  DeliverStr = record
    SeqNum1: LongInt;
    SeqNum2: LongInt;
    SeqNum3: LongInt;
    SrcNo:array[0..21] of Char;
    SpNum:array[0..21] of Char;
    Tp_Pid: Char;
    Tp_Udhi: Char;
    MsgCoding: Char;
    MsgLen: Integer;
    MsgContent: array[0..159] of Char;
end;

//MT Response包結構
type
  MTRespStr = packed record
    SequenceNumber1: LongInt;
    SequenceNumber2: LongInt;
    SequenceNumber3: LongInt;
    Result: Char;
end;

//Submit錯誤結構,當Submit發送不成功時,在Deliver處理中返回該結構
type
  MTErrStr = packed record
    SequenceNumber1: LongInt;
    SequenceNumber2: LongInt;
    SequenceNumber3: LongInt;
    ErrorType: Integer;
end;

//RecvClient接受客戶請求數據
type
 TRecvClient = record
   UserName:array[0..14] of Char;
   PassWord:array[0..14] of Char;
   SPNumber:array[0..9] of Char;
   SvcType:array[0..9] of Char;
   ChargeNumber:array[0..20] of Char;
   UserNumber:array[0..20] of Char;
   ExpireTime:array[0..13] of Char;
   ScheduleTime:array[0..13] of Char;
   TP_Pid:Char;
   TP_Udhi:Char;
   MessageLen:Integer;
   MessageContent:array[0..159] of Char;
 end;

//TranClient下發客戶端的數據
type
  TTranClient = record
    Deliver : DeliverStr;
    Report  : ReportStr;
    Result : byte;
  end;

type
 PSendBuffer = ^TBuffer ;
  TBuffer = record
    SPNumber,ChargeNumber:PChar;
    UserCount: Integer;
    UserPhone,CorpID,SvcType: PChar;
    FeeType: Char;
    FeeValue,Given_Value: PChar;
    AgentFlag,MoFlag,Priority: Char;
    ExpireTime,ScheduleTime: PChar;
    ReportFlag,Tppid,Tpudhi,MsgCoding,MsgType: Char;
    MsgLen:LongInt;MsgContent,Reserve: PChar;
 end;

 type
  PSckHandles = ^TSckHandle;
   TSckHandle = record
    SPNumber:array[0..9] of Char;
    SckHandle:LongInt;
  end;

 type           //用戶身份鑒權數據
  PBindSearch = ^TBindSearch;
   TBindSearch = record
   SPNumber,UserName,PassWord:string;
  end;

 type           //服務類型數據
  PSvcTypeSearch = ^TSvcTypeSearch;
   TSvcTypeSearch = record
    SPNumber,Server_Type,Fee_Type,
    Fee_Value,Priority,ReportFlag:string;
  end;

 type TDeliver = procedure(Deliver: DeliverStr);cdecl;
 type TReport  = procedure(Report: ReportStr);cdecl;

 procedure ProgressBar;
 procedure ChangStr(Msg:string;Value:Integer);
 procedure strMsg(str:TStatusBar;Falg:Integer;Msg:string);
 procedure PaintStr(Img:TImage);
 procedure CurLogMsg(TRE:TMemo;Msg:string);
 procedure DestroySckHandle(SckHandle:LongInt);
 procedure ErrorMsg(Falg:Integer;ErrMsg:PChar);
 procedure DisonnectSck(SckHandle:LongInt);
 procedure AddToSckHandle(SckHandle:LongInt;pSPNumber:string);
 procedure SendBuffer(SckHandle:LongInt;pDeliver:DeliverStr;pReport:ReportStr;pResult:byte);
 function SearchSckHandle(pSPNumber:string;var SckHandle:LongInt):Integer;
 function str_Out(str:string;x:Integer):string;
 function SearchBind(Val1,Val2,Val3:string):Boolean;
 function SearchSvcType(Val1,Val2:string):Boolean;
 function ResultSvcType(val1,val2:string;Flag:Integer):string;
 function AddBufferList(pSPNum,pChargeNum:PChar;Count:Integer;pUserPhone,pSvcType:PChar;pExpireTime,
                        pScheduleTime:PChar;pMsgCoding,pMsgType:Char;pMsgContent:PChar):Boolean;
var
 Progress     : TGauge;
 SendTime     : string;
 TranSvcType  : string;
 SNDUPT       : Integer; 
 //=======================//
 CurLogFile   : string;
 RemoteIPAddr : string;
 LocatIPAddr  : string;
 UserName     : string;
 PassWord     : string;
 SrcNode      : string;
 SPCode       : string;
 SP_Num       : string;
 BufferList   : TList;
 SckHandleList: TList;
 BindList     : TList;
 SvcTypeList  : TList;
 RemotePort   : Integer;
 LocatPort    : Integer;
 RecvHostPort : Integer;
 SocketTimeOut: Integer;
 RunCount     : Integer;
 MTTimeOut    : Integer;
 SendTry      : Integer;
 CurLog       : Boolean;
 AutoRun      : Boolean;
 ProgressAction:Boolean;
 pRect        : TRect;
 RI           : Integer=0;

implementation

uses SPServer, SMG_ReportThread, SMG_DB;

function AddBufferList(pSPNum,pChargeNum:PChar;Count:Integer;pUserPhone,pSvcType:PChar;pExpireTime,
                       pScheduleTime:PChar;pMsgCoding,pMsgType:Char;pMsgContent:PChar):Boolean;
var
 SendBuffer:PSendBuffer;
 pFeeType,pFeeValue,pPriority,pReportFlag:PChar;
 a,b:string;
 i:integer;
begin
Result := False;
with frmSMGDB.qryServerType do
 begin
   Close;
   Parameters.ParamByName('pSPNumber').Value:=string(pSPNum);
   Parameters.ParamByName('pSvcType').Value:=string(pSvcType);
   Open;
   if RecordCount > 0 then
    begin
      pFeeType:=PChar(Trim(Fields[2].Text));
      pFeeValue:=PChar(Trim(Fields[3].Text));
      pPriority:=PChar(Trim(Fields[4].Text));
      pReportFlag:=PChar(Trim(Fields[5].Text));
    end else Exit;
 end;
 New(SendBuffer);
 with SendBuffer^ do
  begin
   SPNumber:=PChar(pSPNum);
   ChargeNumber:=PChar(pChargeNum);
   UserCount:=Count;
   UserPhone:=PChar(pUserPhone);
   CorpID:=PChar(SPCode);
   SvcType:=PChar(pSvcType);
   FeeType:=Char(PChar(pFeeType));
   FeeValue:=PChar(pFeeValue);
   Given_Value:=PChar('');
   AgentFlag:=#0;
   MoFlag:=#0;
   Priority:=Char(pPriority);
   ExpireTime:='';
   ScheduleTime:='';
   ReportFlag:=#1;
   Tppid:='0';
   Tpudhi:='0';
   MsgCoding:=#15;
   MsgType:=#0;
   MsgLen:=Length(pMsgContent);
   MsgContent:=PChar(pMsgContent);
  end;
end;

procedure ProgressBar;
var
 staPanleWidth:Integer;
begin
Progress:=TGauge.Create(nil);
staPanleWidth:=frmSGIP.str.Panels[1].Width;
with Progress do
 begin
  Top:=3;
  Left:=60;
  Width:=frmSGIP.str.Panels[1].Width-4;
  Height:=19;
  Visible:=True;
  ForeColor:=$000080FF;
  Parent:=frmSGIP.str;
  MinValue:=0;
  MaxValue:=100;
 end;
end;

function ResultSvcType(val1,val2:string;Flag:Integer):string;
var
 SvcTypeSearch:PSvcTypeSearch;
 tmp1,tmp2:string;
 I:Integer;
begin
 for I:=0 to SvcTypeList.Count-1 do
  begin
    New(SvcTypeSearch);
    SvcTypeSearch:=SvcTypeList[I];
    with SvcTypeSearch^ do
     begin
      tmp1:=SPNumber;
      tmp2:=Server_Type;
      if (val1=tmp1)and(val2=tmp2) then
       begin
        case Flag of
          1:Result:=Server_Type;
          2:Result:=Fee_Type;
          3:Result:=Fee_Value;
          4:Result:=Priority;
          5:Result:=ReportFlag;
        end;
       end;
     end;
  end;
end;

function SearchSvcType(Val1,Val2:string):Boolean;
var
 SvcTypeSearch:PSvcTypeSearch;
 tmp1,tmp2:string;
 I:Integer;
begin
 Result:=False;
 for I:=0 to SvcTypeList.Count-1 do
  begin
    New(SvcTypeSearch);
    SvcTypeSearch:=SvcTypeList[I];
    with SvcTypeSearch^ do
     begin
       tmp1:=SPNumber;
       tmp2:=Server_Type;
     end;
     if (tmp1=Val1)and(tmp2=Val2) then
       begin
         Result:=True;
         Exit;
       end;
    end;
end;

function SearchBind(Val1,Val2,Val3:string):Boolean;
var
 BindSearch:PBindSearch;
 tmp1,tmp2,tmp3:string;
 I:Integer;
begin
 Result :=False;
 for I:=0 to BindList.Count-1 do
  begin
    BindSearch:=BindList[I];
    with BindSearch^ do
     begin
       tmp1:=SPNumber;
       tmp2:=UserName;
       tmp3:=PassWord;
     end;
    if (Val1=tmp1)and(Val2=tmp2)and(Val3=tmp3) then
     begin
      Result:=True;
      Exit;
     end;
  end;
end;

procedure ChangStr(Msg:string;Value:Integer);
begin
 with frmSGIP do
  with str.Canvas do
   begin
    FillRect(Rect(pRect.Left+2,pRect.Top,pRect.Right-10,pRect.Bottom));
    ImageList2.Draw(Canvas,pRect.Left+2,pRect.Top+2,Value);
    TextOut(pRect.Left+24,6,Msg);
   end;
end;

procedure PaintStr(Img:TImage);
begin
 Shell_NotifyIcon(NIM_MODIFY, @NotifyIcon);
 NotifyIcon.hIcon := Img.Picture.Icon.Handle;
 Shell_NotifyIcon(NIM_ADD, @NotifyIcon);
end;

procedure DestroySckHandle(SckHandle:LongInt);
var
 pSckHandle:PSckHandles;
 I:Integer;
 Sck_Handle:LongInt;
begin
New(pSckHandle);
 for I:=0 to SckHandleList.Count-1 do
   begin
     Sck_Handle:=pSckHandle^.SckHandle;
    if SckHandle = Sck_Handle then
       SckHandleList.Delete(I);
   end;
end;
 
//搜索網絡連接事件
function SearchSckHandle(pSPNumber:string;var SckHandle:LongInt):Integer;
var
 pSckHandle:PSckHandles;
 pSPNum:string;
 Sck_Handle:LongInt;
 I:Integer;
begin
Result := -1;
New(pSckHandle);
for I:=0 to SckHandleList.Count-1 do
 begin
  pSckHandle := SckHandleList[I];
  with pSckHandle^ do
    begin
      pSPNum:=SPNumber;
      Sck_Handle:=SckHandle;
    end;
  if pSPNum = pSPNumber then
   begin
    SckHandle := Sck_Handle;
    Result := 1;
    Exit;
   end
 end;
end;

//添加到網絡對列中
procedure AddToSckHandle(SckHandle:LongInt;pSPNumber:string);
var
 pSckHandle : PSckHandles;
 I:Integer;
 Falg:Boolean;
begin
 Falg := False;
 New(pSckHandle);
 for I:=0 to SckHandleList.Count-1 do
   begin
    pSckHandle := SckHandleList[I];
    if (SckHandle = pSckHandle.SckHandle)and
       (pSPNumber = pSckHandle.SPNumber) then
     begin
       Falg := True;
       Exit;
      end;
   end;
    if not Falg then
      begin
        with pSckHandle^ do
          begin
            StrPCopy(SPNumber,pSPNumber);
            SckHandle:=SckHandle;
          end;
         SckHandleList.Add(pSckHandle);
      end;
end;

procedure DisonnectSck(SckHandle:LongInt);
begin
 frmSGIP.ServerSocket.Socket.Disconnect(SckHandle);
end;

procedure SendBuffer(SckHandle:LongInt;pDeliver:DeliverStr;pReport:ReportStr;pResult:byte);
var
 TranClient : TTranClient;
 Buffer:array[0..1023] of Char;
 I:Integer;
begin
  Inc(RI);
  FillChar(Buffer,SizeOf(Buffer),' ');
  FillChar(TranClient,SizeOf(TranClient),' ');
  Move(pDeliver,TranClient.Deliver,SizeOf(pDeliver));
  Move(pReport,TranClient.Report,SizeOf(pReport));
  TranClient.Result :=pResult;
  Move(TranClient,Buffer,SizeOf(TranClient));
  with frmSGIP.ServerSocket.Socket do
   begin
     for I := 0 to  ActiveConnections -1 do
       begin
         if Connections[I].Handle=SckHandle then
           begin
            Connections[I].SendBuf(Buffer,SizeOf(Buffer));
            Exit;
           end;
       end;
   end;
end;

procedure CurLogMsg(TRE:TMemo;Msg:string);
begin
 if TRE.Lines.Count > 100 then
   TRE.Lines.Delete(0);
   TRE.Lines.Add('');
   TRE.Lines.Add(Msg);
end;

procedure strMsg(str:TStatusBar;Falg:Integer;Msg:string);
begin
 str.Panels[Falg].Text:=Msg;
end;

function str_Out(str:string;x:Integer):string;
begin
 frmSGIP.str.Refresh;
 Result:='';
 case x of
  0..3:frmSGIP.str.Panels[x].Text:=str;
  else
   Result:=frmSGIP.str.Panels[1].Text;
 end;
end;

procedure ErrorMsg(Falg:Integer;ErrMsg:PChar);
begin
 Case Falg of
   0: Raise Exception.Create(ErrMsg);
   1:MessageBox(Application.handle,ErrMsg,PChar('注意'),MB_ICONINFORMATION);
   2:MessageBox(Application.handle,ErrMsg,PChar('錯誤'),MB_ICONSTOP);
   3:MessageBox(Application.handle,ErrMsg,PChar('錯誤'),MB_OK);
 end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美在线不卡| 欧美日韩精品一区二区| 久久久久久97三级| 国产伦精品一区二区三区免费 | 日韩高清欧美激情| 欧美高清dvd| 日本午夜精品视频在线观看| 欧美一级一区二区| 黄一区二区三区| 国产欧美日韩在线看| av资源网一区| 亚洲国产精品自拍| 精品国产不卡一区二区三区| 国产成人亚洲综合色影视| 日本一区二区三区四区在线视频 | 亚洲一区av在线| 日韩一区二区三区精品视频 | 奇米777欧美一区二区| 精品国产一区久久| 99r国产精品| 肉肉av福利一精品导航| 精品1区2区在线观看| fc2成人免费人成在线观看播放| 日韩毛片高清在线播放| 91精品国产免费久久综合| 国产成人精品影视| 亚洲综合激情另类小说区| 精品乱人伦小说| 99亚偷拍自图区亚洲| 天堂久久一区二区三区| 国产网红主播福利一区二区| 欧美体内she精视频| 国产一区福利在线| 洋洋av久久久久久久一区| 精品国免费一区二区三区| 99久久久精品| 蜜臂av日日欢夜夜爽一区| 国产精品色眯眯| 91精品国产高清一区二区三区蜜臀| 国产一区91精品张津瑜| 亚洲一区国产视频| 国产日韩精品一区二区浪潮av | 麻豆高清免费国产一区| 中文字幕一区二区视频| 91精品国产一区二区三区香蕉| 成人永久免费视频| 视频在线在亚洲| 亚洲男人的天堂一区二区| 精品福利在线导航| 欧美高清精品3d| 欧美性受xxxx黑人xyx| 国产精品1区2区| 男女男精品视频网| 亚洲伊人色欲综合网| 中文字幕在线不卡一区| 精品久久久久久久人人人人传媒| 欧美在线观看视频在线| 99久久精品99国产精品| 国产成人在线网站| 日本欧美一区二区三区乱码| 一区二区欧美在线观看| 日韩伦理免费电影| 国产精品久久国产精麻豆99网站| 精品国产免费视频| 日韩一区二区三区电影在线观看 | 日韩无一区二区| 在线播放/欧美激情| 在线精品国精品国产尤物884a| 国产91精品欧美| 国产成人av一区| 国产一区二区三区不卡在线观看| 欧美aⅴ一区二区三区视频| 午夜在线成人av| 亚洲国产欧美在线人成| 亚洲午夜免费电影| 亚洲精品高清视频在线观看| 一区精品在线播放| 亚洲精品视频在线| 一区二区三区中文字幕电影 | 天堂va蜜桃一区二区三区| 亚洲综合色视频| 亚洲综合在线免费观看| 一区二区三区在线影院| 一区二区高清视频在线观看| 一区二区三区免费观看| 一区二区三区中文在线| 亚洲一区二区三区四区在线 | 九色综合狠狠综合久久| 国产真实乱子伦精品视频| 国产精品亚洲第一| 成人av免费在线播放| 99久久精品免费看国产| 日本久久电影网| 欧美视频一二三区| 日韩欧美一区二区久久婷婷| 久久先锋影音av鲁色资源网| 久久精品一区四区| 亚洲免费观看高清完整版在线| 亚洲一区在线电影| 蜜臀va亚洲va欧美va天堂 | 中文字幕一区免费在线观看| 一区二区三区精品在线观看| 亚瑟在线精品视频| 精品午夜久久福利影院| 成人亚洲精品久久久久软件| 色综合天天综合网天天看片| 欧美丝袜自拍制服另类| 欧美成人三级在线| 国产精品久线在线观看| 亚洲国产毛片aaaaa无费看 | bt7086福利一区国产| 欧美性猛交xxxx黑人交| 日韩精品专区在线| |精品福利一区二区三区| 亚洲18色成人| 国产夫妻精品视频| 欧美日韩免费高清一区色橹橹 | 国产精品区一区二区三区| 亚洲图片欧美色图| 国产高清不卡一区| 欧美中文字幕不卡| 国产性做久久久久久| 亚洲一本大道在线| 国产精品综合一区二区三区| 91久久线看在观草草青青| 日韩精品一区在线| 夜夜揉揉日日人人青青一国产精品| 蜜桃视频一区二区三区在线观看| 成人精品视频一区二区三区尤物| 欧美日韩三级视频| 国产精品天干天干在观线| 日本成人在线看| 在线视频一区二区免费| 久久综合色综合88| 午夜私人影院久久久久| 成人av网站在线观看| 日韩精品一区二区三区三区免费| 一区二区日韩电影| 成人动漫一区二区在线| 欧美成人高清电影在线| 亚洲曰韩产成在线| 97久久精品人人澡人人爽| www激情久久| 全国精品久久少妇| 在线观看日韩国产| 日韩成人一区二区三区在线观看| 91免费看视频| 欧美国产综合色视频| 狠狠色丁香九九婷婷综合五月| 欧美性感一区二区三区| 亚洲人成影院在线观看| 国产91精品精华液一区二区三区 | 99国产精品国产精品毛片| 久久久久久久久久久久久夜| 青青国产91久久久久久| 欧美系列在线观看| 亚洲图片欧美视频| 99久久精品久久久久久清纯| 欧美激情综合网| 国产美女视频91| www国产成人| 六月婷婷色综合| 精品久久一区二区| 久久99日本精品| 精品裸体舞一区二区三区| 免费成人av在线播放| 欧美一区二区在线看| 日韩精品一级中文字幕精品视频免费观看 | 色素色在线综合| 亚洲三级小视频| 色视频成人在线观看免| 一区二区三区**美女毛片| 欧美中文字幕一二三区视频| 亚洲国产成人av网| 这里只有精品免费| 美国精品在线观看| 精品国产一二三| 国产乱淫av一区二区三区| 26uuu亚洲综合色欧美| 久久精品国产亚洲a| 色乱码一区二区三区88| 日韩一级高清毛片| 日本va欧美va精品| 91精品国产色综合久久不卡电影 | 天天操天天干天天综合网| 色哟哟日韩精品| 一区二区三区在线视频观看58| 风流少妇一区二区| 亚洲欧洲av色图| 色综合久久精品| 国产女同性恋一区二区| 亚洲特黄一级片| 一本大道久久精品懂色aⅴ | 国产很黄免费观看久久| 久久精品一区蜜桃臀影院| 成人激情小说乱人伦| 欧美国产日韩a欧美在线观看| 成人蜜臀av电影| 一区二区三区中文在线观看| 欧美日韩精品福利|