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

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

?? dbsmain.pas

?? FIR引擎最新源碼+注冊
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
unit DBSMain;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics,
  Controls, Forms, Dialogs, StdCtrls, ExtCtrls, JSocket, Buttons, IniFiles,
  Menus, Grobal2, HumDB, DBShare, ComCtrls, ActnList, AppEvnts, DB,
  DBTables, Common;
type
  TServerInfo = record
    nSckHandle: Integer;
    sStr: string;
    s34C: string;
    bo08: Boolean;
    Socket: TCustomWinSocket;
  end;
  pTServerInfo = ^TServerInfo;

  THumSession = record
    sChrName: string[14];
    nIndex: Integer;
    Socket: TCustomWinSocket;
    bo24: Boolean;
    bo2C: Boolean;
    dwTick30: LongWord;
  end;
  pTHumSession = ^THumSession;

  TLoadHuman = record
    sAccount: string[12];
    sChrName: string[14];
    sUserAddr: string[15];
    nSessionID: Integer;
  end;

  TFrmDBSrv = class(TForm)
    ServerSocket: TServerSocket;
    Timer1: TTimer;
    AniTimer: TTimer;
    StartTimer: TTimer;
    MemoLog: TMemo;
    Panel1: TPanel;
    Label1: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    LbAutoClean: TLabel;
    Panel2: TPanel;
    LbTransCount: TLabel;
    Label2: TLabel;
    Label6: TLabel;
    LbUserCount: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    CkViewHackMsg: TCheckBox;
    MainMenu: TMainMenu;
    MENU_CONTROL: TMenuItem;
    MENU_OPTION: TMenuItem;
    MENU_MANAGE: TMenuItem;
    MENU_OPTION_GENERAL: TMenuItem;
    MENU_OPTION_GAMEGATE: TMenuItem;
    MENU_CONTROL_START: TMenuItem;
    T1: TMenuItem;
    N1: TMenuItem;
    G1: TMenuItem;
    MENU_MANAGE_DATA: TMenuItem;
    MENU_MANAGE_TOOL: TMenuItem;
    MENU_TEST: TMenuItem;
    MENU_TEST_SELGATE: TMenuItem;
    ListView: TListView;
    ApplicationEvents1: TApplicationEvents;
    N2: TMenuItem;
    N3: TMenuItem;
    X1: TMenuItem;
    Query: TQuery;
    DataSource: TDataSource;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure AniTimerTimer(Sender: TObject);
    procedure StartTimerTimer(Sender: TObject);
    procedure BtnUserDBToolClick(Sender: TObject);
    procedure CkViewHackMsgClick(Sender: TObject);
    procedure ServerSocketClientConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ServerSocketClientDisconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ServerSocketClientError(Sender: TObject;
      Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
      var ErrorCode: Integer);
    procedure ServerSocketClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure MENU_MANAGE_DATAClick(Sender: TObject);
    procedure MENU_MANAGE_TOOLClick(Sender: TObject);
    procedure MENU_TEST_SELGATEClick(Sender: TObject);
    procedure MENU_CONTROL_STARTClick(Sender: TObject);
    procedure G1Click(Sender: TObject);
    procedure ApplicationEvents1Exception(Sender: TObject; E: Exception);
    procedure X1Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure MENU_OPTION_GENERALClick(Sender: TObject);
  private
    n334: Integer;
    m_DefMsg: TDefaultMessage;
    n344: Integer;
    n348: Integer;
    s34C: string;
    //ServerList: TList;
    ServerArray: array[0..1000] of TServerInfo;
    nServerCount: Integer;
    //HumSessionList: TList;
    m_boRemoteClose: Boolean;
    procedure ProcessServerPacket(ServerInfo: pTServerInfo);
    procedure ProcessServerMsg(sMsg: string; nLen: Integer; ServerInfo: pTServerInfo);
    procedure SendSocket(ServerInfo: pTServerInfo; sMsg: string);
    procedure LoadHumanRcd(sMsg: string; ServerInfo: pTServerInfo);
    procedure SaveHumanRcd(nRecog: Integer; sMsg: string; ServerInfo: pTServerInfo);
    procedure SaveHumanRcdEx(sMsg: string; nRecog: Integer; ServerInfo: pTServerInfo);
    procedure ClearSocket(Socket: TCustomWinSocket);
    procedure ShowModule();
    function LoadItemsDB(): Integer;
    function LoadMagicDB(): Integer;
    procedure ResServerArray;
    { Private declarations }
  public
    function CopyHumData(sSrcChrName, sDestChrName, sUserId: string): Boolean;
    procedure DelHum(sChrName: string);
    procedure MyMessage(var MsgData: TWmCopyData); message WM_COPYDATA;
    { Public declarations }
  end;

var
  FrmDBSrv: TFrmDBSrv;
implementation
uses FIDHum, UsrSoc, AddrEdit, HUtil32, EDcode,
  IDSocCli, DBTools, TestSelGate, RouteManage, Setting;

{$R *.DFM}
procedure TFrmDBSrv.ServerSocketClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
var
  sIPaddr: string;
  i: Integer;
begin
  sIPaddr := Socket.RemoteAddress;
  if not CheckServerIP(sIPaddr) then begin
    MainOutMessage('非法服務器連接: ' + sIPaddr);
    Socket.Close;
    Exit;
  end;
  Server_sRemoteAddress := sIPaddr;
  Server_nRemotePort := Socket.RemotePort;
  ServerSocketClientConnected := True;

  if not boOpenDBBusy then begin
    for i := Low(ServerArray) to High(ServerArray) do begin
      if ServerArray[i].Socket = nil then begin
        ServerArray[i].nSckHandle := Socket.SocketHandle;
        ServerArray[i].sStr := '';
        ServerArray[i].s34C := '';
        ServerArray[i].bo08 := True;
        ServerArray[i].Socket := Socket;
        Socket.nIndex := i;
        Inc(nServerCount);
        Break;
      end;
    end;
  end else begin
    Socket.Close;
  end;
end;

procedure TFrmDBSrv.ServerSocketClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
var
  nSockIndex: Integer;
begin
  nSockIndex := Socket.nIndex;
  if (nSockIndex >= Low(ServerArray)) and (nSockIndex <= High(ServerArray)) then begin
    if ServerArray[nSockIndex].Socket = Socket then begin
      ServerArray[nSockIndex].nSckHandle := 0;
      ServerArray[nSockIndex].sStr := '';
      ServerArray[nSockIndex].s34C := '';
      ServerArray[nSockIndex].bo08 := False;
      ServerArray[nSockIndex].Socket := nil;
      Dec(nServerCount);
    end;
  end;
end;

procedure TFrmDBSrv.ServerSocketClientError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
  ErrorCode := 0;
  Socket.Close;
  ServerSocketClientConnected := False;
end;

procedure TFrmDBSrv.ServerSocketClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  i: Integer;
  ServerInfo: pTServerInfo;
  nSockIndex: Integer;
  s10: string;
begin
  dwKeepServerAliveTick := GetTickCount;
  g_CheckCode.dwThread0 := 1001000;
  nSockIndex := Socket.nIndex;
  if (nSockIndex >= Low(ServerArray)) and (nSockIndex <= High(ServerArray)) then begin
    g_CheckCode.dwThread0 := 1001001;
    ServerInfo := @ServerArray[nSockIndex];
    g_CheckCode.dwThread0 := 1001002;
    if ServerInfo.nSckHandle = Socket.SocketHandle then begin
      g_CheckCode.dwThread0 := 1001003;
      s10 := Socket.ReceiveText;
      Inc(n4ADBF4);
      if s10 <> '' then begin
        g_CheckCode.dwThread0 := 1001004;
        ServerInfo.sStr := ServerInfo.sStr + s10;
        g_CheckCode.dwThread0 := 1001005;
        if Pos('!', s10) > 0 then begin
          g_CheckCode.dwThread0 := 1001006;
          ProcessServerPacket(ServerInfo);
          g_CheckCode.dwThread0 := 1001007;
          Inc(n4ADBF8);
          Inc(n348);
        end else begin
          if Length(ServerInfo.sStr) > 81920 then begin
            ServerInfo.sStr := '';
            Inc(n4ADC2C);
          end;
        end;
      end;
    end;
  end;
  g_CheckCode.dwThread0 := 1001008;
end;

procedure TFrmDBSrv.ProcessServerPacket(ServerInfo: pTServerInfo);
var
  bo25: Boolean;
  SC, s1C, s20, s24: string;
  n14, n18: Integer;
  wE, w10: Word;
  DefMsg: TDefaultMessage;
begin
  g_CheckCode.dwThread0 := 1001100;
  if boOpenDBBusy then Exit;
  try
    bo25 := False;
    s1C := ServerInfo.sStr;
    ServerInfo.sStr := '';
    s20 := '';
    g_CheckCode.dwThread0 := 1001101;
    s1C := ArrestStringEx(s1C, '#', '!', s20);
    g_CheckCode.dwThread0 := 1001102;
    if s20 <> '' then begin
      g_CheckCode.dwThread0 := 1001103;
      s20 := GetValidStr3(s20, s24, ['/']);
      n14 := Length(s20);
      if (n14 >= DEFBLOCKSIZE) and (s24 <> '') then begin
        wE := Str_ToInt(s24, 0) xor 170;
        w10 := n14;
        n18 := MakeLong(wE, w10);
        SC := EncodeBuffer(@n18, SizeOf(Integer));
        ServerInfo.s34C := s24;
        if CompareBackLStr(s20, SC, Length(SC)) then begin
          g_CheckCode.dwThread0 := 1001104;
          ProcessServerMsg(s20, n14, ServerInfo);
          g_CheckCode.dwThread0 := 1001105;
          bo25 := True;
        end;
      end;
    end;
    if s1C <> '' then begin
      Inc(n4ADC00);
      Label4.Caption := 'Error ' + IntToStr(n4ADC00);
    end;
    if not bo25 then begin
      m_DefMsg := MakeDefaultMsg(DBR_FAIL, 0, 0, 0, 0);
      {
      DefMsg:=MakeDefaultMsg(DBR_FAIL,0,0,0,0);
      n338:=DefMsg.Recog;
      n33C:=DefMsg.Ident;
      n340:=DefMsg.Tag;
      }
      SendSocket(ServerInfo, EncodeMessage(m_DefMsg));
      Inc(n4ADC00);
      Label4.Caption := 'Error ' + IntToStr(n4ADC00);
    end;
  finally
  end;
  g_CheckCode.dwThread0 := 1001106;
end;

procedure TFrmDBSrv.SendSocket(ServerInfo: pTServerInfo; sMsg: string);
var
  n10: Integer;
  s18: string;
begin
  Inc(n4ADBFC);
  n10 := MakeLong(Str_ToInt(ServerInfo.s34C, 0) xor 170, Length(sMsg) + 6);
  s18 := EncodeBuffer(@n10, SizeOf(Integer));
  ServerInfo.Socket.SendText('#' + ServerInfo.s34C + '/' + sMsg + s18 + '!')
end;

procedure TFrmDBSrv.ProcessServerMsg(sMsg: string; nLen: Integer; ServerInfo: pTServerInfo);
var
  sDefMsg, sData: string;
  DefMsg: TDefaultMessage;
begin
  if nLen = DEFBLOCKSIZE then begin
    sDefMsg := sMsg;
    sData := '';
  end else begin
    sDefMsg := Copy(sMsg, 1, DEFBLOCKSIZE);
    sData := Copy(sMsg, DEFBLOCKSIZE + 1, Length(sMsg) - DEFBLOCKSIZE - 6);
  end;
  DefMsg := DecodeMessage(sDefMsg);
  //MemoLog.Lines.Add('DefMsg.Ident ' + IntToStr(DefMsg.Ident));
  case DefMsg.Ident of
    DB_LOADHUMANRCD: begin
        LoadHumanRcd(sData, ServerInfo);
      end;
    DB_SAVEHUMANRCD: begin
        SaveHumanRcd(DefMsg.Recog, sData, ServerInfo);
      end;
    DB_SAVEHUMANRCDEX: begin
        SaveHumanRcdEx(sData, DefMsg.Recog, ServerInfo);
      end;
  else begin
      m_DefMsg := MakeDefaultMsg(DBR_FAIL, 0, 0, 0, 0);
      SendSocket(ServerInfo, EncodeMessage(m_DefMsg));
      Inc(n4ADC04);
      MemoLog.Lines.Add('Fail ' + IntToStr(n4ADC04));
    end;
  end;
  g_CheckCode.dwThread0 := 1001216;
end;

procedure TFrmDBSrv.LoadHumanRcd(sMsg: string; ServerInfo: pTServerInfo);
var
  sHumName: string;
  sAccount: string;
  sIPaddr: string;
  nIndex: Integer;
  nSessionID: Integer;
  nCheckCode: Integer;
  DefMsg: TDefaultMessage;
  HumanRCD: THumDataInfo;
  LoadHuman: TLoadHuman;
  boFoundSession: Boolean;
begin
  DecodeBuffer(sMsg, @LoadHuman, SizeOf(TLoadHuman));
  sAccount := LoadHuman.sAccount;
  sHumName := LoadHuman.sChrName;
  sIPaddr := LoadHuman.sUserAddr;
  nSessionID := LoadHuman.nSessionID;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久日一线二线三线suv| 欧美丝袜丝交足nylons图片| 亚洲风情在线资源站| 国产精品国产三级国产普通话三级| 精品国产制服丝袜高跟| 日韩久久精品一区| 日韩一区二区视频在线观看| 91精品国产综合久久小美女| 欧美猛男男办公室激情| 欧美日韩国产综合草草| 欧美一区二区三区在| 91精品国产综合久久香蕉的特点| 欧美老肥妇做.爰bbww视频| 91精品国产91久久久久久一区二区| 7777精品伊人久久久大香线蕉完整版 | 国产一区久久久| 伦理电影国产精品| 国产精品伊人色| 成人福利在线看| 日本乱人伦aⅴ精品| 欧美优质美女网站| 日韩视频在线一区二区| 久久久国产午夜精品| 亚洲欧洲精品一区二区三区不卡| 亚洲欧美日韩国产另类专区| 亚洲成人三级小说| 国产麻豆精品theporn| 成人免费黄色大片| 欧美日韩一级黄| 精品日本一线二线三线不卡| 国产精品三级视频| 亚洲一区二区三区四区五区中文| 午夜精品123| 国产成人超碰人人澡人人澡| 99久久亚洲一区二区三区青草| 在线观看三级视频欧美| 欧美成人女星排行榜| 亚洲欧美激情一区二区| 日韩高清一级片| 国产99久久精品| 欧美三级在线视频| 国产欧美日韩一区二区三区在线观看| 亚洲欧美韩国综合色| 久久精品99国产精品日本| av亚洲产国偷v产偷v自拍| 日韩丝袜情趣美女图片| 天堂久久一区二区三区| 国产91丝袜在线播放| 欧美日韩极品在线观看一区| 中文字幕av一区二区三区免费看| 亚洲一区二区欧美激情| 成人免费视频一区二区| 日韩欧美www| 亚洲一区中文在线| 波多野结衣在线一区| 欧美一区二区三区思思人 | 成人免费毛片app| 在线播放亚洲一区| 亚洲欧美在线aaa| 国产成人精品亚洲777人妖| 欧美剧在线免费观看网站| 亚洲欧美一区二区三区极速播放| 国内外成人在线| 日韩一区二区三区视频| 午夜视频在线观看一区二区| 91免费视频观看| 亚洲国产精品高清| 激情六月婷婷久久| 日韩欧美黄色影院| 日本sm残虐另类| 91 com成人网| 日韩专区一卡二卡| 欧美丝袜丝交足nylons| 亚洲国产精品自拍| 欧美在线不卡视频| 亚洲成人午夜影院| 欧美男男青年gay1069videost| 亚洲一区二区三区自拍| 欧美丝袜丝交足nylons图片| 亚洲成人av在线电影| 欧美性受xxxx黑人xyx| 亚洲午夜免费福利视频| 欧美日韩高清影院| 视频一区在线播放| 91精品一区二区三区久久久久久| 亚洲成国产人片在线观看| 欧美三级电影一区| 日韩影院免费视频| 日韩欧美精品在线| 国产一区二区美女诱惑| 中文字幕欧美日本乱码一线二线 | 99久久99精品久久久久久| 国产精品久久久久久亚洲伦| 97精品国产露脸对白| 亚洲欧洲综合另类在线| 欧美日韩国产123区| 蜜桃av一区二区| 久久综合久久综合亚洲| 国产1区2区3区精品美女| 亚洲天堂福利av| 91精品在线一区二区| 国产乱码精品一区二区三区五月婷| 2020国产成人综合网| www.性欧美| 爽好久久久欧美精品| 2023国产精品视频| 91麻豆自制传媒国产之光| 天天色天天爱天天射综合| 久久夜色精品国产噜噜av| 99久久伊人精品| 首页国产欧美日韩丝袜| 国产午夜一区二区三区| 91蝌蚪国产九色| 美女性感视频久久| 亚洲视频网在线直播| 日韩视频一区二区三区| youjizz久久| 久久精品国产一区二区三| 一区二区三区成人| 欧美r级在线观看| 一本大道久久a久久精品综合| 免费xxxx性欧美18vr| 亚洲视频网在线直播| 欧美大胆人体bbbb| 欧美综合久久久| 国产激情91久久精品导航| 日韩黄色免费电影| 专区另类欧美日韩| www亚洲一区| 欧美高清视频在线高清观看mv色露露十八| 经典三级一区二区| 亚洲成人资源在线| 中文字幕一区二区视频| 精品成人一区二区三区| 欧美视频在线播放| 91小宝寻花一区二区三区| 国产在线麻豆精品观看| 日本欧美一区二区| 亚洲丰满少妇videoshd| 亚洲免费观看高清在线观看| 国产人伦精品一区二区| 日韩精品专区在线影院观看| 欧美日本在线视频| 在线欧美一区二区| 色八戒一区二区三区| 99视频精品全部免费在线| 国产一区91精品张津瑜| 久久精品国产99国产精品| 日本午夜精品视频在线观看 | 欧美日韩一区二区三区免费看| 成人sese在线| 粉嫩欧美一区二区三区高清影视 | 亚洲欧美一区二区视频| 欧美激情一区二区三区全黄| 久久久99精品免费观看| 久久久久久麻豆| 欧美精品一区二区三区蜜桃 | 国产精品久久久久久久第一福利 | 亚洲综合一区二区三区| 亚洲精品国产无套在线观| 亚洲欧洲av一区二区三区久久| 国产偷v国产偷v亚洲高清| 337p日本欧洲亚洲大胆色噜噜| 777亚洲妇女| 精品久久免费看| 久久久久久久久久久久久久久99| 精品99一区二区三区| 久久久蜜桃精品| 国产欧美精品区一区二区三区| 欧美极品美女视频| 成人欧美一区二区三区视频网页| 亚洲欧美影音先锋| 亚洲一区二区三区四区在线| 日本vs亚洲vs韩国一区三区 | 亚洲第一搞黄网站| 日韩高清一级片| 国产精品一区二区你懂的| 豆国产96在线|亚洲| 91久久线看在观草草青青| 欧美精品在线一区二区三区| 日韩欧美中文字幕精品| 久久久久国产成人精品亚洲午夜| 欧美国产一区在线| 亚洲成人动漫精品| 国模娜娜一区二区三区| 91免费观看视频在线| 欧美嫩在线观看| 欧美国产乱子伦| 午夜私人影院久久久久| 国产69精品久久久久毛片| 欧美专区亚洲专区| 久久影院午夜论| 夜夜揉揉日日人人青青一国产精品| 日日摸夜夜添夜夜添精品视频| 国产福利精品一区二区| 欧洲色大大久久| 久久久91精品国产一区二区精品| 一区二区三区日韩在线观看| 国内精品视频一区二区三区八戒| 色诱视频网站一区|