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

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

?? main.~pas

?? 傳世最新的商業網關DELPHI7源代碼!希望站長通過!!!
?? ~PAS
?? 第 1 頁 / 共 4 頁
字號:
unit Main;

interface

uses
  Windows, Messages, SysUtils, StrUtils, Variants, Classes,  Controls, Forms,
  Dialogs, JSocket, ExtCtrls, StdCtrls, Grobal2, IniFiles, Menus, GateShare,
  ComCtrls;

type
  TFrmMain = class(TForm)
    MemoLog: TMemo;
    Panel: TPanel;
    LbLack: TLabel;
    ServerSocket: TServerSocket;
    SendTimer: TTimer;
    ClientSocket: TClientSocket;
    Timer: TTimer;
    DecodeTimer: TTimer;
    MainMenu: TMainMenu;
    MENU_CONTROL: TMenuItem;
    MENU_CONTROL_START: TMenuItem;
    MENU_CONTROL_STOP: TMenuItem;
    MENU_CONTROL_EXIT: TMenuItem;
    StatusBar: TStatusBar;
    MENU_VIEW: TMenuItem;
    MENU_VIEW_LOGMSG: TMenuItem;
    StartTimer: TTimer;
    MENU_CONTROL_CLEAELOG: TMenuItem;
    MENU_CONTROL_RECONNECT: TMenuItem;
    MENU_OPTION: TMenuItem;
    MENU_OPTION_GENERAL: TMenuItem;
    MENU_OPTION_FILTERMSG: TMenuItem;
    MENU_OPTION_IPFILTER: TMenuItem;
    GroupBox1: TGroupBox;
    LabelReviceMsgSize: TLabel;
    LabelSendBlockSize: TLabel;
    LabelLogonMsgSize: TLabel;
    LabelPlayMsgSize: TLabel;
    LabelDeCodeMsgSize: TLabel;
    LabelProcessMsgSize: TLabel;
    LabelBufferOfM2Size: TLabel;
    GroupBoxProcessTime: TGroupBox;
    LabelSendTime: TLabel;
    LabelReceTime: TLabel;
    LabelLoop: TLabel;
    LabelReviceLimitTime: TLabel;
    LabelSendLimitTime: TLabel;
    LabelLoopTime: TLabel;
    MENU_OPTION_PERFORM: TMenuItem;
    PopupMenu: TPopupMenu;
    POPMENU_PORT: TMenuItem;
    POPMENU_START: TMenuItem;
    POPMENU_CONNSTOP: TMenuItem;
    POPMENU_RECONN: TMenuItem;
    POPMENU_EXIT: TMenuItem;
    POPMENU_CONNSTAT: TMenuItem;
    POPMENU_CONNCOUNT: TMenuItem;
    POPMENU_CHECKTICK: TMenuItem;
    N1: TMenuItem;
    POPMENU_OPEN: TMenuItem;
    MENU_CONTROL_RELOADCONFIG: TMenuItem;
    LabelSelfCheck: TLabel;
    N2: TMenuItem;
    procedure DecodeTimerTimer(Sender: TObject);
    procedure ClientSocketError(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure MENU_CONTROL_EXITClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure MENU_CONTROL_STARTClick(Sender: TObject);
    procedure MENU_CONTROL_STOPClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure MENU_VIEW_LOGMSGClick(Sender: TObject);
    procedure ShowLogMsg(boFlag:Boolean);
    procedure StartTimerTimer(Sender: TObject);
    procedure TimerTimer(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 MemoLogChange(Sender: TObject);
    procedure SendTimerTimer(Sender: TObject);
    procedure ClientSocketConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ClientSocketDisconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure MENU_CONTROL_CLEAELOGClick(Sender: TObject);
    procedure MENU_CONTROL_RECONNECTClick(Sender: TObject);
    procedure MENU_OPTION_GENERALClick(Sender: TObject);
    procedure MENU_OPTION_FILTERMSGClick(Sender: TObject);
    procedure MENU_OPTION_IPFILTERClick(Sender: TObject);
    procedure MENU_OPTION_PERFORMClick(Sender: TObject);
    procedure MENU_CONTROL_RELOADCONFIGClick(Sender: TObject);
    procedure N2Click(Sender: TObject);
  private
    dwShowMainLogTick  :LongWord;
    boShowLocked       :Boolean;
    TempLogList:TStringList;
    dwCheckClientTick  :LongWord;
    dwProcessPacketTick:LongWord;

    boServerReady :Boolean;
    dwLoopCheckTick    :LongWord;
    dwLoopTime               :LongWord;
    dwProcessServerMsgTime  :LongWord;
    dwProcessClientMsgTime     :LongWord;
    dwReConnectServerTime :LongWord;
    dwRefConsolMsgTick    :LongWord;
    nBufferOfM2Size  :Integer;
    dwRefConsoleMsgTick  :LongWord;
    nReviceMsgSize   :Integer;
    nDeCodeMsgSize   :Integer;
    nSendBlockSize   :Integer;
    nProcessMsgSize  :Integer;
    nHumLogonMsgSize :Integer;
    nHumPlayMsgSize  :Integer;

    procedure SendServerMsg(nIdent:Integer;wSocketIndex:Word;nSocket,nUserListIndex:Integer;nLen:Integer;Data:PChar);
    procedure SendSocket(SendBuffer:PChar; nLen: Integer);
    procedure ShowMainLogMsg();
    procedure LoadConfig();
    procedure StartService();
    procedure StopService();
    procedure RestSessionArray();
    procedure ProcReceiveBuffer(tBuffer:PChar; nMsgLen:Integer);
    procedure ProcessUserPacket(UserData: pTSendUserData);
    procedure ProcessPacket(UserData:pTSendUserData);
    procedure ProcessMakeSocketStr(nSocket,nSocketIndex:Integer;Buffer:PChar;nMsgLen:Integer);
    procedure FilterSayMsg(var sMsg: String);
    function  IsBlockIP(sIPaddr:String):Boolean;
    function  IsConnLimited(sIPaddr:String):Boolean;
    function CheckDefMsg(DefMsg: pTDefaultMessage;SessionInfo:pTSessionInfo): Boolean;
    procedure CloseAllUser();dynamic;
    { Private declarations }
  public
    procedure CloseConnect(sIPaddr:String);
    procedure MyMessage(var MsgData:TWmCopyData);message WM_COPYDATA;
    { Public declarations }
  end;

var
  FrmMain: TFrmMain;
  saccount:string;
  tpos1:  Tposarr;
  tfpos:  Tposarr;
implementation

uses EDcode, HUtil32, GeneralConfig, MessageFilterConfig, IPaddrFilter,
  PrefConfig;



{$R *.dfm}
procedure TFrmMain.SendSocket(SendBuffer:PChar;nLen:Integer);
begin
  if ClientSocket.Socket.Connected then
    ClientSocket.Socket.SendBuf(SendBuffer^,nLen);
end;
procedure TFrmMain.SendServerMsg(nIdent:Integer;wSocketIndex:Word;nSocket,nUserListIndex:Integer;nLen:Integer;Data:PChar);
var
  GateMsg:TMsgHeader;
  SendBuffer:PChar;
  nBuffLen:Integer;
begin
  //SendBuffer:=nil;
  GateMsg.dwCode:=RUNGATECODE;
  GateMsg.nSocket:=nSocket;
  GateMsg.wGateIndex:=wSocketIndex;  // wGSocketIdx
  GateMsg.wIdent:=nIdent;
   GateMsg.nUserListIndex:=nUserListIndex;
  GateMsg.nLength:=nLen;
  nBuffLen:=nLen + SizeOf(TMsgHeader);
  GetMem(SendBuffer,nBuffLen);
  Move(GateMsg,SendBuffer^,SizeOf(TMsgHeader));
  if Data <> nil then begin
    Move(Data^,SendBuffer[SizeOf(TMsgHeader)],nLen);
  end;//0045505E
  SendSocket(SendBuffer,nBuffLen);
  FreeMem(SendBuffer);
end;
procedure TFrmMain.DecodeTimerTimer(Sender: TObject);
var
  dwLoopProcessTime,dwProcessReviceMsgLimiTick:LongWord;
  UserData:pTSendUserData;
  i:Integer;
  tUserData:TSendUserData;
  UserSession:pTSessionInfo;
begin
  ShowMainLogMsg();
  if not boDecodeMsgLock then begin
    try
      if (GetTickCount - dwRefConsoleMsgTick) >= 1000 then begin
        dwRefConsoleMsgTick:=GetTickCount();
        if not boShowBite then begin
          LabelReviceMsgSize.Caption:='接收: ' + IntToStr(nReviceMsgSize  div 1024) + ' KB';
          LabelBufferOfM2Size.Caption:='服務器通訊: ' +IntToStr(nBufferOfM2Size  div 1024) + ' KB';
          LabelProcessMsgSize.Caption:='編碼: ' +IntToStr(nProcessMsgSize  div 1024) + ' KB';
          LabelLogonMsgSize.Caption:='登錄: ' +IntToStr(nHumLogonMsgSize  div 1024) + ' KB';
          LabelPlayMsgSize.Caption:='普通: ' +IntToStr(nHumPlayMsgSize  div 1024) + ' KB';
          LabelDeCodeMsgSize.Caption:='解碼: ' +IntToStr(nDeCodeMsgSize  div 1024) + ' KB';
          LabelSendBlockSize.Caption:='發送: ' +IntToStr(nSendBlockSize  div 1024) + ' KB';
          {
          Label5.Caption:=IntToStr(nReviceMsgSize  div 1024) + 'KB/' +
                          IntToStr(nBufferOfM2Size  div 1024) + 'KB';
          Label7.Caption:=IntToStr(nProcessMsgSize  div 1024) + 'KB/' +
                          IntToStr(nHumLogonMsgSize  div 1024) + 'KB/' +
                          IntToStr(nHumPlayMsgSize  div 1024) + 'KB - ' +
                          IntToStr(nDeCodeMsgSize  div 1024) + 'KB/' +
                          IntToStr(nSendBlockSize  div 1024) + 'KB';
          }
        end else begin//004554D4
          LabelReviceMsgSize.Caption:='接收: ' + IntToStr(nReviceMsgSize) + ' B';
          LabelBufferOfM2Size.Caption:='服務器通訊: ' +IntToStr(nBufferOfM2Size) + ' B';
          LabelSelfCheck.Caption:='通訊自檢: ' + IntToStr(dwCheckServerTimeMin) + '/' + IntToStr(dwCheckServerTimeMax);
          LabelProcessMsgSize.Caption:='編碼: ' +IntToStr(nProcessMsgSize) + ' B';
          LabelLogonMsgSize.Caption:='登錄: ' +IntToStr(nHumLogonMsgSize) + ' B';
          LabelPlayMsgSize.Caption:='普通: ' +IntToStr(nHumPlayMsgSize) + ' B';
          LabelDeCodeMsgSize.Caption:='解碼: ' +IntToStr(nDeCodeMsgSize) + ' B';
          LabelSendBlockSize.Caption:='發送: ' +IntToStr(nSendBlockSize) + ' B';
          if dwCheckServerTimeMax > 1 then Dec(dwCheckServerTimeMax);

          {
          Label5.Caption:=IntToStr(nReviceMsgSize) + 'B/' +
                          IntToStr(nBufferOfM2Size) + 'B';
          Label7.Caption:=IntToStr(nProcessMsgSize) + 'B/' +
                          IntToStr(nHumLogonMsgSize) + 'B/' +
                          IntToStr(nHumPlayMsgSize) + 'B - ' +
                          IntToStr(nDeCodeMsgSize) + 'B/' +
                          IntToStr(nSendBlockSize) + 'B';
          }
        end;//004555BF
        if ServerSocket.Socket.ActiveConnections >= 3 then begin
          if nReviceMsgSize = 0 then begin
            //004555E4
            //ShowWarning Windows
            //00455602
          end else begin
            //ShowWarning Windows
          end;
        end;//0x00455617
        nBufferOfM2Size:=0;
        nReviceMsgSize:=0;
        nDeCodeMsgSize:=0;
        nSendBlockSize:=0;
        nProcessMsgSize:=0;
        nHumLogonMsgSize:=0;
        nHumPlayMsgSize:=0;
      end;//00455664
      try
        dwProcessReviceMsgLimiTick:=GetTickCount();
        while (True) do begin
          if ReviceMsgList.Count <= 0 then break;
          UserData:=ReviceMsgList.Items[0];
          ReviceMsgList.Delete(0);
          ProcessUserPacket(UserData);
          Dispose(UserData);
          if (GetTickCount - dwProcessReviceMsgLimiTick) > dwProcessReviceMsgTimeLimit then break;
        end;
      except
        on E:Exception do begin
          AddMainLogMsg('[Exception] DecodeTimerTImer->ProcessUserPacket',1);
        end;
      end;
      try//004556F6
        dwProcessReviceMsgLimiTick:=GetTickCount();
        while (True) do begin
          if SendMsgList.Count <= 0 then break;
          UserData:=SendMsgList.Items[0];
          SendMsgList.Delete(0);
          ProcessPacket(UserData);
          Dispose(UserData);
          if (GetTickCount - dwProcessReviceMsgLimiTick) > dwProcessSendMsgTimeLimit then break;
        end;
      except
        on E:Exception do begin
          AddMainLogMsg('[Exception] DecodeTimerTImer->ProcessPacket',1);
        end;
      end;
      try//00455788
        dwProcessReviceMsgLimiTick:=GetTickCount();
        if (GetTickCount - dwProcessPacketTick) > 300 then begin
          dwProcessPacketTick:=GetTickCount();
          if ReviceMsgList.Count > 0 then begin
            if dwProcessReviceMsgTimeLimit < 300 then Inc(dwProcessReviceMsgTimeLimit);
          end else begin
            if dwProcessReviceMsgTimeLimit > 30 then Dec(dwProcessReviceMsgTimeLimit);
          end;
          if SendMsgList.Count > 0 then begin
            if dwProcessSendMsgTimeLimit < 300 then Inc(dwProcessSendMsgTimeLimit);
          end else begin
            if dwProcessSendMsgTimeLimit > 30 then Dec(dwProcessSendMsgTimeLimit);
          end;
          //00455826
          for i:=0 to GATEMAXSESSION - 1 do begin
            UserSession:=@SessionArray[i];
            if (UserSession.Socket <> nil) and (UserSession.sSendData <> '') then begin
              tUserData.nSocketIdx:=i;
              tUserData.nSocketHandle:=UserSession.nSckHandle;
              tUserData.sMsg:='';
              ProcessPacket(@tUserData);
              if (GetTickCount - dwProcessReviceMsgLimiTick) > 20 then break;
            end;
          end;
        end;//00455894
      except
        on E:Exception do begin
          AddMainLogMsg('[Exception] DecodeTimerTImer->ProcessPacket 2',1);
        end;
      end;
      //004558C1

      //每二秒向游戲服務器發送一個檢查信號
      if (GetTickCount - dwCheckClientTick) > 2000 then begin
        dwCheckClientTick:=GetTickCount();
        if boGateReady then begin
          SendServerMsg(GM_CHECKCLIENT,0,0,0,0,nil);
        end;
        if (GetTickCount - dwCheckServerTick) > dwCheckServerTimeOutTime then begin
//        if (GetTickCount - dwCheckServerTick) > 60 * 1000 then begin
          boCheckServerFail:=True;
          ClientSocket.Close;
        end;
        if dwLoopTime > 30 then Dec(dwLoopTime,20);
        if dwProcessServerMsgTime > 1 then Dec(dwProcessServerMsgTime);
        if dwProcessClientMsgTime > 1 then Dec(dwProcessClientMsgTime);
      end;//0045596F
      
      boDecodeMsgLock:=False;
    except
      on E:Exception do begin
        AddMainLogMsg('[Exception] DecodeTimer',1);
        boDecodeMsgLock:=False;
      end;
    end;
    //004559AA
    dwLoopProcessTime:=GetTickCount - dwLoopCheckTick;
    dwLoopCheckTick:=GetTickCount();
    if dwLoopTime < dwLoopProcessTime then begin
      dwLoopTime:= dwLoopProcessTime;
    end;
    if (GetTickCount - dwRefConsolMsgTick) > 1000 then begin
      dwRefConsolMsgTick:=GetTickCount();
      LabelLoopTime.Caption:=IntToStr(dwLoopTime);
      LabelReviceLimitTime.Caption:='接收處理限制: ' + IntToStr(dwProcessReviceMsgTimeLimit);
      LabelSendLimitTime.Caption:='發送處理限制: ' + IntToStr(dwProcessSendMsgTimeLimit);
      LabelReceTime.Caption:='接收: ' + IntToStr(dwProcessClientMsgTime);
      LabelSendTime.Caption:='發送: ' + IntToStr(dwProcessServerMsgTime);
      {
      Label2.Caption:='Loop < ' + IntToStr(dwLoopTime);
      Label3.Caption:='Rece < ' + IntToStr(dwProcessServerMsgTime);
      Label4.Caption:='Send < ' + IntToStr(dwProcessClientMsgTime) + ' Lim ' + IntToStr(dwProcessReviceMsgTimeLimit) + '/' + IntToStr(dwProcessSendMsgTimeLimit);
      }
    end;
  end;//00455B0D
end;
procedure TFrmMain.ProcessUserPacket(UserData:pTSendUserData);
//00455E80
var
  sMsg,sData,sDefMsg,sDataMsg,sDataText,sHumName:String;
  Buffer:PChar;
  nOPacketIdx,nPacketIdx,nDataLen,n14:Integer;
  DefMsg:TDefaultMessage;
begin
  try
    n14:=0;
    Inc(nProcessMsgSize,Length(UserData.sMsg));
    if (UserData.nSocketIdx >= 0) and (UserData.nSocketIdx < GATEMAXSESSION) then begin
      if  (UserData.nSocketHandle = SessionArray[UserData.nSocketIdx].nSckHandle) and
          (SessionArray[UserData.nSocketIdx].nPacketErrCount < 10) then begin
          if Length(SessionArray[UserData.nSocketIdx].sSocData) > MSGMAXLENGTH then begin
             SessionArray[UserData.nSocketIdx].sSocData:='';
             SessionArray[UserData.nSocketIdx].nPacketErrCount:=99;
             UserData.sMsg:='';
          end;//00455F7A
          sMsg:=SessionArray[UserData.nSocketIdx].sSocData + UserData.sMsg;
          while (True) do begin//00455FA0
            sData:='';

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区在线观看视频| 国产91在线|亚洲| 国产麻豆9l精品三级站| 在线视频一区二区三| 国产亚洲欧美激情| 五月天久久比比资源色| 99国产欧美另类久久久精品| 日韩精品一区二区三区蜜臀| 亚洲最新视频在线播放| 成人国产一区二区三区精品| 欧美成人video| 五月激情综合色| 91网页版在线| 国产精品毛片a∨一区二区三区| 免费日韩伦理电影| 欧美肥妇free| 天天射综合影视| 欧美中文字幕不卡| 一级日本不卡的影视| 91丨九色porny丨蝌蚪| 国产女同互慰高潮91漫画| 久久av中文字幕片| 欧美日本精品一区二区三区| 亚洲一区在线观看免费| 色视频成人在线观看免| 亚洲日本在线看| av成人老司机| 日韩一区中文字幕| 99久久免费国产| 亚洲欧美自拍偷拍色图| 99re在线精品| 亚洲天堂网中文字| 色偷偷成人一区二区三区91| 国产精品白丝在线| 91麻豆免费在线观看| 1区2区3区欧美| 91成人免费网站| 亚洲国产一区视频| 欧美肥胖老妇做爰| 韩国av一区二区三区四区| 久久老女人爱爱| 成人激情午夜影院| 亚洲美女少妇撒尿| 欧美精品电影在线播放| 久久精品国产一区二区三| 精品少妇一区二区三区视频免付费| 亚洲成人av一区二区三区| 欧美一区二区三区爱爱| 国产伦精品一区二区三区免费 | 国产乱色国产精品免费视频| 欧美videos中文字幕| 国产一区二区在线看| 国产欧美日韩激情| 99re8在线精品视频免费播放| 一区二区三区中文免费| 3751色影院一区二区三区| 激情文学综合插| 亚洲欧美一区二区久久| 日韩一区二区三区四区| 丁香亚洲综合激情啪啪综合| 亚洲日韩欧美一区二区在线| 91精品国产福利| 成人免费看片app下载| 亚洲成a人v欧美综合天堂下载| 欧美一区二区三区色| 国产精品一二三四五| 亚洲乱码一区二区三区在线观看| 欧美性猛交xxxxxxxx| 国产麻豆精品在线观看| 亚洲午夜视频在线观看| 久久精子c满五个校花| 欧美在线观看视频一区二区三区 | 国产一区二区在线影院| 亚洲免费视频中文字幕| 精品免费国产一区二区三区四区| 99精品一区二区三区| 日韩成人精品在线| 中文字幕一区三区| 日韩精品专区在线影院重磅| 成人国产免费视频| 久久国产精品免费| 亚洲成人午夜电影| 亚洲欧洲日产国产综合网| 日韩欧美亚洲一区二区| 欧美影视一区在线| 不卡一区二区中文字幕| 精品一二三四在线| 视频一区视频二区中文| 一区二区三区四区蜜桃| 久久精品人人做人人爽97| 欧美精品丝袜中出| 91美女在线观看| 成人精品视频一区二区三区尤物| 免费成人在线播放| 视频一区二区三区中文字幕| 亚洲欧美另类小说| 国产精品国产精品国产专区不片| 精品剧情在线观看| 在线成人午夜影院| 欧美日本免费一区二区三区| 色婷婷精品久久二区二区蜜臀av| 国产酒店精品激情| 国产另类ts人妖一区二区| 久久精品国产在热久久| 日韩影院免费视频| 亚洲一区二区三区三| 亚洲综合在线五月| 亚洲精品一二三| 亚洲人成精品久久久久| 国产精品久久免费看| 国产精品高潮久久久久无| 国产精品色哟哟| 欧美国产精品一区二区| 中日韩av电影| 亚洲丝袜精品丝袜在线| 亚洲欧美日韩成人高清在线一区| 亚洲摸摸操操av| 亚洲综合免费观看高清完整版在线| 一区二区在线观看视频| 亚洲三级久久久| 亚洲国产精品久久久久秋霞影院| 午夜精品福利久久久| 日本在线播放一区二区三区| 理论电影国产精品| 国产精品69毛片高清亚洲| 成人a级免费电影| 色呦呦一区二区三区| 欧美三级欧美一级| 日韩美女主播在线视频一区二区三区 | 国产精品一级在线| 成人永久看片免费视频天堂| 东方aⅴ免费观看久久av| 色偷偷久久一区二区三区| 欧美精品色一区二区三区| 欧美精品一区二| 中文字幕日韩一区二区| 亚洲一线二线三线视频| 毛片av一区二区三区| 国产精品1区2区3区| 一本大道久久a久久综合婷婷 | 精品久久久三级丝袜| 中文字幕精品—区二区四季| 亚洲裸体xxx| 日本不卡一区二区三区| 国产剧情一区在线| 欧美视频中文字幕| 久久久亚洲高清| 亚洲激情在线播放| 狂野欧美性猛交blacked| 国产成人高清视频| 欧美日韩另类一区| 国产精品三级久久久久三级| 亚洲午夜激情av| 国产精品99久久久久久久vr| 欧日韩精品视频| 久久久久久亚洲综合影院红桃| 亚洲精品va在线观看| 国产美女精品人人做人人爽| 欧洲日韩一区二区三区| 久久精品欧美日韩精品| 日韩国产在线观看| 色综合色综合色综合| 欧美v亚洲v综合ⅴ国产v| 伊人夜夜躁av伊人久久| 国产成人av一区| 欧美mv日韩mv国产网站| 亚洲成av人片在线| caoporn国产精品| 久久免费视频一区| 蜜臀久久久久久久| 欧美性一级生活| 中文字幕综合网| 成人午夜精品在线| 久久夜色精品一区| 美女视频第一区二区三区免费观看网站 | 国产精选一区二区三区| 欧美日韩激情在线| 亚洲欧美另类在线| 波多野结衣亚洲一区| 久久中文字幕电影| 麻豆国产欧美一区二区三区| 成人精品电影在线观看| 青青草伊人久久| 4438x成人网最大色成网站| 中文字幕一区二区三区不卡| 精品无人区卡一卡二卡三乱码免费卡 | 国产精品一级片| 欧美成人福利视频| 青青草一区二区三区| 欧美精品在线视频| 婷婷开心久久网| 欧美午夜免费电影| 亚洲国产中文字幕| 欧美美女bb生活片| 爽好多水快深点欧美视频| 欧美少妇性性性| 丝袜亚洲另类丝袜在线| 欧美一级片免费看| 毛片一区二区三区| 久久久噜噜噜久久中文字幕色伊伊|