⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gateshare.~pas

📁 飘飘的传奇服务端院代码 能编译的 要控件 老大就让我传上去吧
💻 ~PAS
字号:
unit GateShare;

interface
uses
  Windows, Messages, Classes, SysUtils, JSocket, WinSock, SyncObjs,Common;
resourcestring
{$IF Version = SuperUser}
  g_sProductName = '飘飘网络防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 叶随风飘 QQ:240621028';
  g_sWebSite = '程序网站: http://www.51ggame.com';
{$ELSEIF Version = UserKey1}
  g_sProductName = '飞尔世界防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 周行 QQ:13677866';
  g_sWebSite = '程序网站: http://www.cqfir.com';
{$ELSEIF Version = UserKey2}
  g_sProductName = '亿众网络防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 亿众网络 QQ:987355';
  g_sWebSite = '程序网站: http://www.hao4f.cn';
{$ELSEIF Version = UserKey3}
  g_sProductName = '弘智网络防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 我爱罗 QQ:548262';
  g_sWebSite = '程序网站: http://www.588idc.com';
{$ELSEIF Version = UserKey4}
  g_sProductName = '封神网防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 无泪 QQ:19639454';
  g_sWebSite = '程序网站: http://www.coipc.com';
{$ELSEIF Version = UserKey5}
  g_sProductName = '速网科技防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 速网科技 QQ:240272';
  g_sWebSite = '程序网站: http://www.sukj.com';
{$ELSEIF Version = UserKey6}
  g_sProductName = '飘飘网络防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 叶随风飘 QQ:240621028';
  g_sWebSite = '程序网站: http://www.51ggame.com';
{$ELSEIF Version = UserKey7}
  g_sProductName = '翎风数据防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 翎风数据 QQ:635455 648409';
  g_sWebSite = '程序网站: http://www.Gm06.com';
{$ELSEIF Version = UserKey8}
  g_sProductName = '飘飘网络防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 叶随风飘 QQ:240621028';
  g_sWebSite = '程序网站: http://www.51ggame.com';
{$ELSEIF Version = UserKey9}
  g_sProductName = '枫越网络防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: ヤ傲氣ぺ無悔 QQ:842321';
  g_sWebSite = '程序网站: Http://Www.42199.Com';
{$ELSEIF Version = UserKey10}
  g_sProductName = '暴风网络防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 暴风网络 QQ:65631790';
  g_sWebSite = '程序网站: http://www.bfsf.cn';
{$ELSEIF Version = UserKey11}
  g_sProductName = '亿人科技防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 亿人科技 QQ:79446';
  g_sWebSite = '程序网站: http://www.79445.com';
{$ELSEIF Version = UserKey12}
  g_sProductName = '奔腾科技防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 奔腾科技 QQ:774058';
  g_sWebSite = '程序网站: http://Www.Idc512.Com';

{$ELSEIF Version = UserKey13}
  g_sProductName = '飘飘网络防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 叶随风飘 QQ:240621028';
  g_sWebSite = '程序网站: http://www.51ggame.com';
{$ELSEIF Version = UserKey14}
  g_sProductName = '飘飘网络防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 叶随风飘 QQ:240621028';
  g_sWebSite = '程序网站: http://www.51ggame.com';
{$ELSEIF Version = UserKey15}
  g_sProductName = '飘飘网络防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 叶随风飘 QQ:240621028';
  g_sWebSite = '程序网站: http://www.51ggame.com';
{$ELSEIF Version = UserKey16}
  g_sProductName = '飘飘网络防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 叶随风飘 QQ:240621028';
  g_sWebSite = '程序网站: http://www.51ggame.com';
{$ELSEIF Version = UserKey17}
  g_sProductName = '飘飘网络防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 叶随风飘 QQ:240621028';
  g_sWebSite = '程序网站: http://www.51ggame.com';
{$ELSEIF Version = UserKey18}
  g_sProductName = '飘飘网络防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 叶随风飘 QQ:240621028';
  g_sWebSite = '程序网站: http://www.51ggame.com';
{$ELSEIF Version = UserKey19}
  g_sProductName = '飘飘网络防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 叶随风飘 QQ:240621028';
  g_sWebSite = '程序网站: http://www.51ggame.com';
{$ELSEIF Version = UserKey20}
  g_sProductName = '飘飘网络防攻击登陆网关 V 1.0';
  g_sUpDateTime = '更新日期: 2006/09/12';
  g_sProgram = '程序制作: 叶随风飘 QQ:240621028';
  g_sWebSite = '程序网站: http://www.51ggame.com';
{$IFEND}

type
  TGList = Class(TList)
  private
    GLock: TRTLCriticalSection;
  public
    constructor Create;
    destructor Destroy; override;
    procedure Lock;
    procedure UnLock;
  end;

  TBlockIPMethod = (mDisconnect, mBlock, mBlockList);
  
  TSockaddr = record
    nIPaddr: Integer;
    dwStartAttackTick: LongWord;
    nAttackCount:Integer;
  end;
  pTSockaddr = ^TSockaddr;

procedure LoadBlockIPFile();
procedure SendGameCenterMsg(wIdent: Word; sSendMsg: String);
procedure SaveBlockIPList();
var
  CS_MainLog: TCriticalSection;
  CS_FilterMsg: TCriticalSection;
  MainLogMsgList: TStringList;
  BlockIPList: TGList;
  TempBlockIPList: TGList;
  CurrIPaddrList: TGList;
  AttackIPaddrList: TGList;

  nShowLogLevel: Integer = 3;
  StringList456A14: TStringList;
  GateClass: String = 'SelGate';
  GateName: String = '角色网关';
{$IF Version = SuperUser}
  TitleName: string = '飘飘网络';
{$ELSEIF Version = UserKey1}
  TitleName: string = '飞尔世界';
{$ELSEIF Version = UserKey2}
  TitleName: string = '亿众网络';
{$ELSEIF Version = UserKey3}
  TitleName: string = '弘智网络';
{$ELSEIF Version = UserKey4}
  TitleName: string = '封神网';
{$ELSEIF Version = UserKey5}
  TitleName: string = '速网科技';
{$ELSEIF Version = UserKey6}
  TitleName: string = '飘飘网络';
{$ELSEIF Version = UserKey7}
  TitleName: string = '翎风数据';
{$ELSEIF Version = UserKey8}
  TitleName: string = '飘飘网络';
{$ELSEIF Version = UserKey9}
  TitleName: string = '枫越网络';
{$ELSEIF Version = UserKey10}
  TitleName: string = '暴风网络';
{$ELSEIF Version = UserKey11}
  TitleName: string = '亿人科技';
{$ELSEIF Version = UserKey12}
  TitleName: string = '奔腾科技';
  
{$ELSEIF Version = UserKey13}
  TitleName: string = '飘飘网络';
{$ELSEIF Version = UserKey14}
  TitleName: string = '飘飘网络';
{$ELSEIF Version = UserKey15}
  TitleName: string = '飘飘网络';
{$ELSEIF Version = UserKey16}
  TitleName: string = '飘飘网络';
{$ELSEIF Version = UserKey17}
  TitleName: string = '飘飘网络';
{$ELSEIF Version = UserKey18}
  TitleName: string = '飘飘网络';
{$ELSEIF Version = UserKey19}
  TitleName: string = '飘飘网络';
{$ELSEIF Version = UserKey20}
  TitleName: string = '飘飘网络';
{$IFEND}
  ServerPort: Integer = 5100;
  ServerAddr: String = '127.0.0.1';
  GatePort: Integer = 7100;
  GateAddr: String = '0.0.0.0';

  boGateReady: Boolean = False;
  boShowMessage: Boolean;
  boStarted: Boolean = False;
  boClose: Boolean = False;
  boServiceStart: Boolean = False;
  dwKeepAliveTick: LongWord;
  boKeepAliveTimcOut: Boolean = False;
  nSendMsgCount: Integer;
  n456A2C: Integer;
  n456A30: Integer;
  boSendHoldTimeOut: Boolean;
  dwSendHoldTick: LongWord;
  boDecodeLock: Boolean;

  nMaxConnOfIPaddr: Integer = 10;

  BlockMethod: TBlockIPMethod = mDisconnect;
  dwKeepConnectTimeOut: LongWord = 60 * 1000;
  g_boDynamicIPDisMode: Boolean = False; //用于动态IP,分机放置登录网关用,打开此模式后,网关将会把连接登录服务器的IP地址,当为服务器IP,发给登录服务器,客户端将直接使用此IP连接角色网关

  g_dwGameCenterHandle: THandle;
  g_sNowStartGate: String = '正在启动角色网关...';
  g_sNowStartOK: String = '启动角色网关完成...';

  dwAttackTick: LongWord = 100;
  nAttackCount: Integer = 10;
  nReviceMsgLength: Integer = 350; //每MS允许接受的长度,超过即认为是攻击
  dwReviceTick: LongWord = 500;
  nAttackLevel: Integer = 2;
  nMaxClientMsgCount: Integer = 2;
const
  tLoginGate = 6;
implementation
uses Grobal2;

procedure LoadBlockIPFile();
var
  I: Integer;
  sFileName: String;
  LoadList: TStringList;
  sIPaddr: String;
  nIPaddr: Integer;
  IPaddr: pTSockaddr;
begin
  sFileName := '.\BlockIPList.txt';
  if FileExists(sFileName) then begin
    LoadList := TStringList.Create;
    LoadList.LoadFromFile(sFileName);
    for I := 0 to LoadList.Count - 1 do begin
      sIPaddr := Trim(LoadList.Strings[0]);
      if sIPaddr = '' then Continue;
      nIPaddr := inet_addr(PChar(sIPaddr));
      if nIPaddr = INADDR_NONE then Continue;
      New(IPaddr);
      FillChar(IPaddr^, SizeOf(TSockaddr), 0);
      IPaddr.nIPaddr := nIPaddr;
      BlockIPList.Add(IPaddr);
    end;
    LoadList.Free;
  end;
end;
procedure SaveBlockIPList();
var
  I: Integer;
  SaveList: TStringList;
begin
  SaveList := TStringList.Create;
  for I := 0 to BlockIPList.Count - 1 do begin
    SaveList.Add(StrPas(inet_ntoa(TInAddr(pTSockaddr(BlockIPList.Items[I]).nIPaddr))));
  end;
  SaveList.SaveToFile('.\BlockIPList.txt');
  SaveList.Free;
end;
procedure SendGameCenterMsg(wIdent: Word; sSendMsg: String);
var
  SendData: TCopyDataStruct;
  nParam: Integer;
begin
  nParam := MakeLong(Word(tLoginGate), wIdent);
  SendData.cbData := Length(sSendMsg) + 1;
  GetMem(SendData.lpData, SendData.cbData);
  StrCopy(SendData.lpData, PChar(sSendMsg));
  SendMessage(g_dwGameCenterHandle, WM_COPYDATA, nParam, Cardinal(@SendData));
  FreeMem(SendData.lpData);
end;

constructor TGList.Create;
begin
  inherited Create;
  InitializeCriticalSection(GLock);
end;

destructor TGList.Destroy;
begin
  DeleteCriticalSection(GLock);
  inherited;
end;

procedure TGList.Lock;
begin
  EnterCriticalSection(GLock);
end;

procedure TGList.UnLock;
begin
  LeaveCriticalSection(GLock);
end;

initialization
  begin
    CS_MainLog := TCriticalSection.Create;
    CS_FilterMsg := TCriticalSection.Create;
    StringList456A14 := TStringList.Create;
    MainLogMsgList := TStringList.Create;
  end;

finalization
  begin
    StringList456A14.Free;
    MainLogMsgList.Free;
    CS_MainLog.Free;
    CS_FilterMsg.Free;
  end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -