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

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

?? lsshare.pas

?? MDB版本的LoginSvr跟SQL版本的傳奇源代碼。希望對大家能有用處
?? PAS
字號:
unit LSShare;

interface

uses
  Windows, Messages, Classes, Dialogs, SysUtils, SyncObjs, IniFiles,
  MudUtil, SDK, Grobal2;

type
  TGateNet = record
    sIPaddr:  string;
    nPort:    integer;
    boEnable: boolean;
  end;

  TGateRoute = record
    sServerName: string;
    sTitle: string;
    sRemoteAddr: string;
    sPublicAddr: string;
    nSelIdx: integer;
    Gate: array [0..9] of TGateNet;
  end;

  TConfig = record
    IniConf:     TIniFile;
    boRemoteClose: boolean;
    sDBServer:   string[30];    //0x00475368
    nDBSPort:    integer;       //0x00475374
    sFeeServer:  string[30];    //0x0047536C
    nFeePort:    integer;       //0x00475378
    sLogServer:  string[30];    //0x00475370
    nLogPort:    integer;       //0x0047537C
    sGateAddr:   string[30];
    nGatePort:   integer;
    sServerAddr: string[30];
    nServerPort: integer;
    sMonAddr:    string[30];
    nMonPort:    integer;
    sGateIPaddr: string[30]; //當前處理的網(wǎng)關連接IP地址
    sWebLogDir:  string[50];
    sFeedIDList: string[50];
    sFeedIPList: string[50];
    sCountLogDir: string[50];
    sChrLogDir:  string[50];

    boTestServer: boolean;
    boEnableMakingID: boolean;
    boDynamicIPMode: boolean;
    nReadyServers: integer;

    GateCriticalSection: TRTLCriticalSection;
    GateList:    TList;
    SessionList: TGList;
    ServerNameList: TStringList;
    AccountCostList: TQuickList;
    IPaddrCostList: TQuickList;
    boShowDetailMsg: boolean;
    dwProcessGateTick: longword;          //0x00475380
    dwProcessGateTime: longword;          //0x00475384
    nRouteCount: integer;//0x47328C
    GateRoute:   array[0..59] of TGateRoute;
  end;
  pTConfig = ^TConfig;

function CheckAccountName(sName: string): boolean;
function GetSessionID(): integer;
procedure SaveGateConfig(Config: pTConfig);
function GetGatePublicAddr(Config: pTConfig; sGateIP: string): string;
function GenSpaceString(sStr: string; nSpaceCOunt: integer): string;
procedure MainOutMessage(sMsg: string);
//procedure LoadDBSetup;

var

  g_sVersion:string= 'OByiHiZdpgQOPPoF{WwYpksCu\';
  g_sUpDateTime:string= 'H_<lIxOfHO?Pl_CDqL';
  g_sProgram:string= 'OByiH^=HWrYeWaIaXcUaX^=IM@Flu_@jH<';
  g_sWebSite:string= 'o[_Qk_esYsXjWByiH^u_W\';
  
  g_Config: TConfig = (boRemoteClose: False;
  sDBServer: '127.0.0.1';
  nDBSPort: 16300;
  sFeeServer: '127.0.0.1';
  nFeePort: 16301;
  sLogServer: '127.0.0.1';
  nLogPort: 16301;
  sGateAddr: '0.0.0.0';
  nGatePort: 5500;
  sServerAddr: '0.0.0.0';
  nServerPort: 5600;
  sMonAddr: '0.0.0.0';
  nMonPort: 3000;

  sWebLogDir: '.\Share\';            //0x00470D08
  sFeedIDList: '.\FeedIDList.txt';   //0x00470D0C
  sFeedIPList: '.\FeedIPList.txt';   //0x00470D10
  sCountLogDir: '.\CountLog\';       //0x00470D14
  sChrLogDir: '.\ChrLog\';

  boTestServer: True;
  boEnableMakingID: True;
  boDynamicIPMode: False;
  nReadyServers: 0;
  boShowDetailMsg: False);


  g_sSQLString        :String = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\IDDB\Account.mdb;Persist Security Info=False';

  //nReadyServers     :Integer;           //0x00475388
  nOnlineCountMin: integer;           //0x00475390
  nOnlineCountMax: integer;           //0x00475394
  nMemoHeigh: integer;           //0x00475398
  g_OutMessageCS: TRTLCriticalSection;
  g_MainMsgList: TStringList;       //0x0047539C
  CS_DB:   TCriticalSection;  //0x004753A0
  n4753A4: integer;           //0x004753A4
  n4753A8: integer;           //0x004753A8
  n4753B0: integer;           //0x004753B0


  n47328C: integer;

  nSessionIdx: integer;          //0x00473294

  g_n472A6C: integer;
  g_n472A70: integer;
  g_n472A74: integer;
  g_boDataDBReady: boolean;         //0x00472A78
  bo470D20:  boolean;

  nVersionDate: integer = 20011006;


  ServerAddr: array[0..99] of string[15];

implementation

uses
  HUtil32;



function CheckAccountName(sName: string): boolean; //00454384
var
  i:    integer;
  nLen: integer;
begin
  Result := False;
  if sName = '' then exit;
  Result := True;
  nLen   := length(sName);
  i      := 1;
  while (True) do begin
    if i > nLen then break;
    if (sName[i] < '0') or (sName[i] > 'z') then begin
      ;
      Result := False;
      if (sName[i] >= #$B0) and (sName[i] <= #$C8) then begin
        Inc(i);
        if i <= nLen then if (sName[i] >= #$A1) and (sName[i] <= #$FE) then
            Result := True;
      end;
      if not Result then break;
    end;
    Inc(i);
  end;
end;
//00468BDC
function GetSessionID(): integer;
begin
  Inc(nSessionIdx);
  if nSessionIdx >= High(integer) then begin
    nSessionIdx := 2;
  end;
  Result := nSessionIdx;
end;
//0046D4F4
procedure SaveGateConfig(Config: pTConfig);
var
  SaveList: TStringList;
  i, n8:    integer;
  s10, sC:  string;
begin
  SaveList := TStringList.Create;
  SaveList.Add(';No space allowed');
  SaveList.Add(GenSpaceString(';Server', 15) + GenSpaceString('Title', 15) +
    GenSpaceString('Remote', 17) + GenSpaceString('Public', 17) + 'Gate...');
  for i := 0 to Config.nRouteCount - 1 do begin
    sC := GenSpaceString(Config.GateRoute[i].sServerName, 15) +
      GenSpaceString(Config.GateRoute[i].sTitle, 15) +
      GenSpaceString(Config.GateRoute[i].sRemoteAddr, 17) +
      GenSpaceString(Config.GateRoute[i].sPublicAddr, 17);
    n8 := 0;
    while (True) do begin
      s10 := Config.GateRoute[i].Gate[n8].sIPaddr;
      if s10 = '' then break;
      if not Config.GateRoute[i].Gate[n8].boEnable then s10 := '*' + s10;
      s10 := s10 + ':' + IntToStr(Config.GateRoute[i].Gate[n8].nPort);
      sC := sC + GenSpaceString(s10, 17);
      Inc(n8);
      if n8 >= 10 then break;
    end;
    SaveList.Add(sC);
  end;
  SaveList.SaveToFile('.\!addrtable.txt');
  SaveList.Free;
end;
//0046D7F8
function GetGatePublicAddr(Config: pTConfig; sGateIP: string): string;
var
  I: integer;
begin
  Result := sGateIP;
  for I := 0 to Config.nRouteCount - 1 do begin
    if Config.GateRoute[I].sRemoteAddr = sGateIP then begin
      Result := Config.GateRoute[I].sPublicAddr;
      break;
    end;
  end;
end;
//004541C4
function GenSpaceString(sStr: string; nSpaceCount: integer): string;
var
  I: integer;
begin
  Result := sStr + ' ';
  for I := 1 to nSpaceCount - Length(sStr) do begin
    Result := Result + ' ';
  end;
end;
//00468F00
procedure MainOutMessage(sMsg: string);
begin
  EnterCriticalSection(g_OutMessageCS);
  try
    g_MainMsgList.Add(sMsg)
  finally
    LeaveCriticalSection(g_OutMessageCS);
  end;
end;

{procedure LoadDBSetup;
var
  LoadList        :TStringList;
  sFileName       :string;
  i               :Integer;
  sLineText, sTmp :string;
begin
  sFileName := '.\!DBSetup.txt';
  if FileExists(sFileName) then begin
    LoadList := TStringList.Create;
    LoadList.LoadFromFile(sFileName);
    for i := 0 to LoadList.Count - 1 do begin
      sLineText := Trim(LoadList.Strings[i]);

      if (sLineText <> '') then begin
        if sLineText[1] = ';' then Continue;
        //sTmp holds Connect=
        //sLineText holds SQL
        sLineText := GetValidStr3(sLineText, sTmp, ['=']);

        if (sLineText <> '') then g_sSQLString := sLineText;
      end;
    end;
    LoadList.Free;
  end else
    ShowMessage('[Critical Failure] file not found. .\!DBSetup.txt');
end;}

initialization
begin
  InitializeCriticalSection(g_OutMessageCS);
  g_MainMsgList := TStringList.Create;
end;

finalization
begin
  g_MainMsgList.Free;
  DeleteCriticalSection(g_OutMessageCS);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产精品一区二区| 国产91清纯白嫩初高中在线观看| 亚洲免费在线电影| 亚洲欧洲成人精品av97| 成人欧美一区二区三区黑人麻豆| 国产精品成人网| 亚洲视频免费观看| 亚洲最新在线观看| 亚洲成av人片观看| 美女视频一区在线观看| 激情综合网最新| 国产成人免费视频网站| 99vv1com这只有精品| 在线亚洲+欧美+日本专区| 欧美三级电影在线看| 555夜色666亚洲国产免| 日韩欧美在线网站| 久久精品视频在线免费观看| 国产精品精品国产色婷婷| 亚洲精品免费播放| 亚洲成人av在线电影| 久久精品免费看| 国产大陆亚洲精品国产| 99国产精品视频免费观看| 欧美三级日韩三级| 日韩精品专区在线影院观看| 国产日韩成人精品| 久久超碰97中文字幕| 国产资源精品在线观看| 成人午夜短视频| 欧美三级电影网站| 久久久精品免费免费| 亚洲色图一区二区| 免费成人av在线播放| 成人免费视频一区二区| 欧美日免费三级在线| 久久一夜天堂av一区二区三区| 亚洲欧美综合色| 蜜桃久久精品一区二区| jlzzjlzz亚洲女人18| 在线播放欧美女士性生活| 国产日韩视频一区二区三区| 一区二区三区在线播| 精品一区二区三区的国产在线播放| 99久久精品免费看| 欧美大片日本大片免费观看| 亚洲欧美怡红院| 久久99久国产精品黄毛片色诱| 99精品欧美一区| 欧美成人伊人久久综合网| 日韩一区在线播放| 黄一区二区三区| 欧美专区在线观看一区| 国产色综合一区| 奇米色一区二区| 在线亚洲一区二区| 中文字幕不卡在线| 麻豆精品一区二区av白丝在线| 91视频一区二区| 久久精品一区二区三区不卡| 香蕉影视欧美成人| 91在线观看污| 久久精品欧美一区二区三区麻豆 | 亚洲综合在线观看视频| 狠狠网亚洲精品| 欧美日韩综合不卡| 中文字幕一区日韩精品欧美| 国内精品伊人久久久久av影院| 色综合视频在线观看| 久久九九国产精品| 男女激情视频一区| 精品视频一区二区三区免费| 中文字幕色av一区二区三区| 国产乱国产乱300精品| 91精品国产综合久久久久| 亚洲精品免费在线播放| 成人小视频在线| 精品国产精品一区二区夜夜嗨| 亚洲高清视频中文字幕| 一本色道**综合亚洲精品蜜桃冫| 欧美国产日本韩| 国产麻豆成人传媒免费观看| 欧美本精品男人aⅴ天堂| 日本女人一区二区三区| 欧美日韩国产在线观看| 国产美女视频一区| 久久亚洲精精品中文字幕早川悠里| 亚洲免费观看高清完整版在线观看熊| 国产美女av一区二区三区| 日韩丝袜美女视频| 轻轻草成人在线| 6080亚洲精品一区二区| 图片区小说区区亚洲影院| 日本高清不卡一区| 一区二区三区四区高清精品免费观看| 成人精品视频.| 亚洲国产岛国毛片在线| 成人美女在线视频| 国产精品天天摸av网| 成人午夜电影网站| 国产精品久久网站| 成人精品电影在线观看| 中文字幕第一区二区| www.成人网.com| 一区二区三区在线视频免费观看| 色婷婷综合久久久中文字幕| 一区二区三区在线视频观看58| 色婷婷综合视频在线观看| 亚洲狠狠丁香婷婷综合久久久| 91电影在线观看| 视频精品一区二区| 日韩精品中文字幕一区| 国产精选一区二区三区| 国产欧美日本一区视频| 一区二区三区中文免费| 色综合久久久久久久| 一区二区在线电影| 欧美肥胖老妇做爰| 免费在线观看日韩欧美| 久久久午夜精品理论片中文字幕| 国产在线观看免费一区| 国产精品色婷婷| 色婷婷av一区二区三区gif| 亚洲第一成年网| 欧美mv日韩mv国产| 成人app下载| 亚洲国产日韩a在线播放 | 国产精品久久久久精k8| 一本大道av一区二区在线播放 | 日本精品免费观看高清观看| 亚洲a一区二区| 亚洲精品一线二线三线| 99久久99久久精品免费看蜜桃| 一区二区三区国产精品| 欧美剧情电影在线观看完整版免费励志电影| 日本不卡高清视频| 国产精品美女久久久久高潮| 欧美日韩国产综合一区二区| 国产一区二区三区四| 一区二区三区在线播放| 欧美成人国产一区二区| 91日韩精品一区| 日本aⅴ亚洲精品中文乱码| 国产欧美精品区一区二区三区| 色综合久久88色综合天天| 最新热久久免费视频| 国产不卡高清在线观看视频| 亚洲激情图片一区| 精品日韩一区二区三区| www.欧美色图| 日本欧美加勒比视频| 中文字幕不卡三区| 欧美欧美午夜aⅴ在线观看| 懂色av噜噜一区二区三区av| 亚洲成人一区在线| 国产精品欧美一区二区三区| 欧美日韩久久久| 成人丝袜高跟foot| 日韩激情在线观看| 亚洲色图制服诱惑| 久久香蕉国产线看观看99| 欧美日韩在线免费视频| 成人激情小说网站| 欧美a一区二区| 亚洲精品视频一区| 国产女主播视频一区二区| 欧美高清视频不卡网| www.亚洲精品| 国内外成人在线| 天天做天天摸天天爽国产一区| 中文字幕乱码一区二区免费| 欧美电视剧在线看免费| 欧美性xxxxx极品少妇| 成人动漫一区二区在线| 国内精品在线播放| 日本不卡免费在线视频| 夜夜嗨av一区二区三区网页| 亚洲国产岛国毛片在线| 久久综合狠狠综合久久综合88 | 欧美国产成人在线| 欧美一区国产二区| 欧美系列一区二区| proumb性欧美在线观看| 国产精品99久久久| 久久国产尿小便嘘嘘尿| 婷婷丁香久久五月婷婷| 一区二区三区四区av| 亚洲天堂网中文字| 中文字幕欧美激情一区| 国产日韩欧美一区二区三区乱码 | 88在线观看91蜜桃国自产| 色偷偷久久一区二区三区| 97精品久久久午夜一区二区三区 | 中文字幕欧美激情一区| 久久精品一区二区三区四区| 欧美成人欧美edvon| 欧美一区二区三区在线电影 | 亚洲欧美日韩中文播放| 亚洲天堂av一区| 中文字幕制服丝袜一区二区三区|