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

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

?? dbsocket.h

?? 韓國英雄王座倒閉后流出來部分源代碼
?? H
字號:
////////////////////////////////////////////////////////////////////////////////////////
//	DBSocket.h : header file
//
//
//
////////////////////////////////////////////////////////////////////////////////////////

#if !defined( _DBSocket_H_ )
#define _DBSocket_H_


#include "tgaBase.h"
#include "XPtrList.h"				//	犬厘 CPtrList
#include "SafeMap.h"				//	hread Safe Map


class SafeList ;
template <class TYPE, int MULTIPLE = 10> class CMemPool ;



#define		MAX_WORLD_SOCKET			3
const int	MAX_DBSOCKET_WORKER_THREAD	= 2;

////////////////////////////////////////////////////////////////////////////////////////
//	DBSocket command target
////////////////////////////////////////////////////////////////////////////////////////
class DBSocket ;
typedef DBSocket * _LPDBSOCK ;


class DBSocket 
{
public:
	
	DBSocket();
	~DBSocket();

public:

	HANDLE		m_hReadEventCompleted;					// IO READ 肯豐登菌瀾闌 舅覆
	CXPtrList	m_listReadCompleted;					// 肯豐等 IO 鈕, 貿府甫 扁促赴促.
	_LPDBPACKET		pDBPacket ;							// 巋靛 輯滾俊 焊郴綽 烙矯 菩哦 

private:
	
	WORD			m_nStart;							//	輯滾 矯累 咯何
														//
														//	-	包訪 瀝焊甫 _Module狼 函薦 葷儈咯何 魄竄
	
	SafeList		m_SocketPool;						//	SOCKET POOL

	CMemPool<_PER_BULK_IO_CONTEXT> * m_pWorldIOPool;	//	IO


	int				m_nNowSocketNum;					//	泅犁 傈價 吝牢 Socket Num

	bool			m_bSocketStatus[MAX_WORLD_SOCKET];	//	SOCKET狼 楷搬 惑怕
	SOCKET			m_Socket[MAX_WORLD_SOCKET];			//	Connected Socket
	_LPDBSOCKET_FD	m_SocketFD[MAX_WORLD_SOCKET];

	DWORD		m_dwThreadCount;						// 角 iocp work thread 骯薦
 	SOCKET		m_WorldSocketListen;					// Listen Socket
	


	VOID CLOSEHANDLE( HANDLE &x )
	{
		if( x != NULL ){
			CloseHandle(x);
			x = NULL;
		}
	}

	VOID CLOSESOCKET( SOCKET &x )
	{
		if( x != INVALID_SOCKET ){
			closesocket(x);
			x = INVALID_SOCKET;
		}
	}

	VOID CLOSEEVENT( HANDLE &x )
	{
		if( x != NULL ){
			SetEvent(x);
			CloseHandle(x);
			x = NULL;
		}
	}

public:

#ifdef DEF_UNIQUEITEM
	void WorldSend_UniqueItemCreate		( int pUniqueHandle );
#endif

#ifdef DEF_AZIT

	
	//
	//	秦寸 竊薦 瀝府 累訣 鞘夸
	//
	//	-	茄俺狼 Function欄肺 瀝府竊
	//
	void WorldSend_AzitTaxChange		(_LPSOCKET_FD pSocketFD, int pAzitHandle, int pTaxRate );
	void WorldSend_AzitProposeHouseWar	(_LPSOCKET_FD pSocketFD, int pAzitHandle, int pGuildHandle );
	void WorldSend_AzitIncome			(_LPSOCKET_FD pSocketFD, int pAzitHandle );

	void WorldSend_AzitOwnChange		( int pAzitHandle, int pGuildHandle	);
	void WorldSend_AzitTex				( int pAzitHandle, int pAzitTex		);

	void WorldSend_AzitChangeByGM( _LPSOCKET_FD pSocketFD, _ZW_AZITCHANGE_ASK *pAzitChangeInfo );

#endif

	//
	//	楷魂俊 鞘夸茄 皋葛府甫 且寸
	//
	bool bMemAlloc() ;

	void SocketPool_Delete();
	void SocketPool_Push( void *pSocket );
	void * SocketPool_Pop();
	bool SocketPool_Create();

	BOOL bInit();
	bool bConnect( int pNum ,  bool pReconnect );

	void InitFuctionPoint();
	BOOL InitializeEvent();	
	BOOL InitializeThread();

	bool bSend(_LPDBPACKET lpDbPacket) ;
	bool bSend(_LPDBPACKET lpDbPacket, int pNum );
	bool bSend(_LPDBPACKET lpDbPacket, _LPDBSOCKET_FD pDBSocketFD );
	


	_LPPER_BULK_IO_CONTEXT CreateIOContext(_IO_TYPE io);
	_LPDBSOCKET_FD CreateSocketContext();

	void ReleaseIOContext(_LPPER_BULK_IO_CONTEXT lpIOContext);
	void ReleaseSocketContext(_LPDBSOCKET_FD lpSktContext);


	void WorkReadCompleted();		// IO 肯豐等 單撈鷗 貿府 Thread
	void WriteCompleted(_LPPER_BULK_IO_CONTEXT lpIOContext);

	BOOL ReadPacket( _LPPER_BULK_IO_CONTEXT lpIOContext);
	void CloseClient(_LPDBSOCKET_FD lpSktContext, _LPPER_BULK_IO_CONTEXT lpIOContext /* , BOOL bGraceful */);
	
	void PacketTrace(DWORD dwCommand);

	void ReConnect(_LPDBSOCKET_FD ,_LPPER_BULK_IO_CONTEXT  ) ;

	
	void WorldSend_ConnectWorld( int pNum );
	
	void WorldSend_GuildJoin(_LPSOCKET_FD	pSocket,DWORD dwPlayerHandle, char * lpPlayer, char * lpGuildName );
	void WorldSend_Notice(_LPSOCKET_FD pSocket, DWORD pMapID, char *  pMsg ) ;
	void WorldSend_PartyList( _LPSOCKET_FD pSocket, DWORD pPartyHandle		);
	
	void WorldSend_PartyRefresh( _LPSOCKET_FD pSocketFD,	DWORD pPartyHandle );
	void WorldSend_PartyCreate( _LPSOCKET_FD pFromSocket, _LPSOCKET_FD	pToSocket ,BYTE nType = 0 );
	void WorldSend_PartyJoin( _LPSOCKET_FD	pSocketFD, DWORD pPartyHandle );

	void WorldSend_PartyLeave( DWORD pPartyHandle, DWORD	pPlayerHandle );
	void WorldSend_PlayerClose( char * pPlayerID );


	void WorldSend_PartyQuestIsAlive( _LPSOCKET_FD pSocket, DWORD pPartyHandle, DWORD	pMasterHandle, DWORD pPartyQuest );
	void WorldSend_PartyQuestMapChange( _LPSOCKET_FD pSocket, BYTE btType, DWORD pPartyHandle, DWORD pPlayerHandle, DWORD pParam1, DWORD pParam2, DWORD pParam3 );


	void WorldSend_FriendReg(_LPSOCKET_FD	pSocket ,DWORD dwPlayerHandle ,_LPZP_FRIENDREGANS_ASK p);
	void WorldSend_FriendInfor(_LPSOCKET_FD	pSocket ,_LPZP_FRIENDINFOR_ASK p);
	void WorldSend_FriendDismiss(_LPSOCKET_FD	pSocket ,_LPZP_DISMISSFRIEND_ASK p);

	void WorldSend_FightzoneList(_LPSOCKET_FD	pSocket ,_LPZP_FIGHTZONELIST_ASK p);
	void WorldSend_FightzoneReserve(_LPSOCKET_FD	pSocket ,_LPZP_PVPANS_ASK p,BYTE nTeamCount = 2,bool bIsHidden = false);
	void WorldSend_FightzoneReserveCancel(_LPSOCKET_FD	pSocket, char *  , WORD wFightzoneSeq,DWORD dwMatchSEQ);
	
	void WorldSend_MatchInforAsk(DWORD dwMatchHandle, DWORD ,DWORD );
		
	void WorldSend_MapInfor(int nSocketNum);
	void WorldSend_FightzoneInfor();
	

	void WorldSend_GuildBankGoldInOut( _LPSOCKET_FD pSocketFD,DWORD dwPlayerHandle, int pGoldInOut );

	void WorldSend_GuildBankInventoryAct(_LPSOCKET_FD pSocketFD, DWORD dwPlayerHandle,  _LPZP_INVENTORYACT_ASK pPacket, GUILDBANKACTION_ENUM pAction );

	void WorldSend_MenuAction( _LPSOCKET_FD	pSocket, DWORD dwPlayerHandle, BYTE pNPCType, BYTE pStatus );
	void WorldSend_QuestSetGlobalValue( _LPSOCKET_FD pSocket );
	
	
	// 2005-1-7 badajoa
	// 巋靛 輯滾肺 弊成 焊郴綽 菩哦撈 腹酒輯 袍敲復闌 父甸菌促.
	template < typename PacketPoint >  
	void  WorldSend_Packet( _LPSOCKET_FD pSocketFD, DWORD dwPacketID, PacketPoint pPacket )
	{
		_LPDBPACKET	pWorldPacket = g_pServerMem->WorldPacket_Pop();			

			pWorldPacket->dwCommand	=	dwPacketID ;
			pWorldPacket->pSocketFD	=	pSocketFD;

			memcpy(pWorldPacket->strPacket, pPacket , sizeof(*pPacket))  ;

			pWorldPacket->dwSize	= sizeof(*pPacket) ;

			g_lpDBSock->bSend(pWorldPacket) ;	
	}

	
	//
	//	WORLD SERVER PACKET貿府 Functions
	//
	friend void WorldPacket_Nothing				(_LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	
	friend void WorldPacket_PlayerIn			(_LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );			//	PLAYER BASE
	friend void WorldPacket_PlayerInvetory		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );	//	PLAYER INVETORY
	friend void	WorldPacket_PlayerSkill			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );		//	PLAYER SKILL

	friend void	WorldPacket_QuestList			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );			//	QUEST LIST
	friend void	WorldPacket_QuestGlobalValue	( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );	//	QUEST GLOBAL VALUE


	friend void WorldPacket_PlayerOut			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );			//	PLAYER	OUT
	friend void WorldPacket_PlayerMapOut		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );		//	MAP		OUT

	friend void WorldPacket_MapServerStop		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_WorldServerRecovery	( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );	

	friend void WorldPacket_PlayerClose			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );

	friend void WorldPacket_ItemSlot			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );	//ITEM SLOT		//Jason 2004-06-01

	//
	//	Party包訪 Funcions
	//
	friend void	WorldPacket_PartyCreate			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void	WorldPacket_PartyJoin			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void	WorldPacket_PartyLeave			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void	WorldPacket_PartyDelete			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void	WorldPacket_PartyRefresh		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_PartyList			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_PartyChat			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );


	friend void	WorldPacket_PartyQuestIsAlive	( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void	WorldPacket_PartyQuestMapChange ( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );


	friend void WorldPacket_NoticeMsg			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	
	//
	// 辨靛 包訪 Function
	//
	friend void WorldPacket_GuildCreate			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_GuildJoin			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_LeaveGuild			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_KickMember			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_GuildInfor			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_GuildDisband		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_GuildForceDisband	( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_GuildAppointMaster	( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_GuildForceKickMember( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_GuildMarkChange		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_GuildForceMarkChange( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );

	friend void WorldPacket_GuildMember			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_GuildChangeExp		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_GuildNoticeSet		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_GuildInforChange	( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_GuildInforServer	( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_GuildSkill			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );	//ITEM SLOT		//Jason 2004-06-01
	
#ifdef DEF_GUILDWAR
	friend void WorldPacket_GuildWar			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );	// 辨靛傈
	friend void WorldPacket_GuildArmistice		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );	// 辨靛傈
	
#endif 

	//
	//	模備 包訪 Fuction
	//
	friend void WorldPacket_FriendReg			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_FriendDismiss		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_FriendInfor			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );

	//
	//	葷捧厘 Function
	//
	friend void WorldPacket_FightzoneList		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_FightzoneReserve	( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_FightzoneMatchStart	( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );

	//
	//	酒瘤飄 Function
	//
#ifdef DEF_AZIT
	friend void	WorldPacket_AzitStatusList		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void	WorldPacket_AzitStatusUpdate	( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void	WorldPacket_AzitWarPropose		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void	WorldPacket_AzitChangeGM		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void	WorldPacket_AzitIncome			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void WorldPacket_AzitTaxChange		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
#endif

	//
	//	蠟聰農 酒撈袍 
	//
#ifdef DEF_UNIQUEITEM
	friend void	WorldPacket_UniqueItemList		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void	WorldPacket_UniqueItemUpdate	( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
#endif

	//
	//	辨靛 芒絆 Function 
	//
	friend void	WorldPacket_MenuAction			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void	WorldPacket_GuildBankInfo		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	
	friend void	WorldPacket_GuildBankGoldInOut	( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );

#ifdef DEF_GUILDBANK
	friend void	WorldPakcet_GuildInventoryList	( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
	friend void	WorldPacket_GuildInventoryAct	( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );

#endif


#ifdef DEF_NPCCARD
	friend void WorldPacket_NPCCardInfo			( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
#endif


#ifdef DEF_GUILDRANKDUB
	friend void WorldPacket_GuildRankDub		( _LPDBSOCK lpWorldSock, _LPPER_BULK_IO_CONTEXT lpIOContext );
#endif

};


////////////////////////////////////////////////////////////////////////////////////////
//	NOTENOTE: 輯滾 加檔 氫惑闌 困秦 竊薦 器牢磐 葷儈 
////////////////////////////////////////////////////////////////////////////////////////
 
typedef struct
{
	void ( *proc) (_LPDBSOCK LP,  _LPPER_BULK_IO_CONTEXT lpIOContext);
} ONDBTRANSFUNC;


/////////////////////////////////////////////////////////////////////////////


#endif // !defined(_DBSocket_H_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天堂成人国产精品一区| 国产成人精品1024| 国产酒店精品激情| 精品一区中文字幕| 极品少妇xxxx精品少妇偷拍| av福利精品导航| 欧美精品在线观看播放| 久久免费的精品国产v∧| 亚洲美女视频在线观看| 免费在线成人网| 国产高清不卡一区| 7777女厕盗摄久久久| 中文av一区二区| 喷水一区二区三区| 色婷婷av一区二区三区大白胸 | 成人动漫在线一区| 欧美高清视频在线高清观看mv色露露十八| 欧美变态凌虐bdsm| 亚洲成a人片在线观看中文| 国产电影精品久久禁18| 欧美日韩国产中文| 一区二区三区色| 在线观看欧美日本| 一二三区精品福利视频| 欧美午夜不卡视频| 亚洲第一电影网| 69堂国产成人免费视频| 亚洲欧美日韩电影| 成人免费视频一区| 国产婷婷色一区二区三区| 精品影视av免费| 欧美一区二区视频网站| 亚洲线精品一区二区三区| 成人av网站大全| 国产精品丝袜在线| 国产精品18久久久久久久久| 欧美岛国在线观看| 日本女优在线视频一区二区| 欧美日韩免费电影| 亚洲综合自拍偷拍| 久久精品国产在热久久| 日韩欧美国产综合| 美国十次综合导航| 日韩欧美一级二级三级久久久| 丝袜诱惑制服诱惑色一区在线观看| 欧美欧美欧美欧美首页| 亚洲国产日韩一级| 精品污污网站免费看| 一区二区三区国产豹纹内裤在线 | 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 成人高清伦理免费影院在线观看| 精品日产卡一卡二卡麻豆| 免费观看91视频大全| 欧美r级在线观看| 精东粉嫩av免费一区二区三区| 精品日韩欧美一区二区| 国产一区二区在线影院| 国产精品久久久久影院色老大| 国产一区二区三区电影在线观看| 日韩三区在线观看| 精品一区二区三区的国产在线播放| 精品少妇一区二区三区在线播放| 韩日av一区二区| 最新高清无码专区| 欧美人妖巨大在线| 久久国产精品99久久久久久老狼| 久久色成人在线| 99视频精品免费视频| 亚洲天堂2016| 欧美一区二区三区色| 国产裸体歌舞团一区二区| 国产精品久久久久久久久晋中 | 日韩欧美电影在线| 国内一区二区视频| 国产精品日产欧美久久久久| 国产一区二区三区四区五区美女| 国产精品福利av| 97国产一区二区| 婷婷成人激情在线网| 国产日韩视频一区二区三区| 欧美影院午夜播放| 波波电影院一区二区三区| 蜜臀91精品一区二区三区| 一区二区三区在线免费播放| 久久在线观看免费| 欧美伦理影视网| 不卡一区在线观看| 一区二区视频免费在线观看| 欧美日韩精品一区二区三区| 国产不卡视频一区| 免费看精品久久片| 亚洲女同一区二区| 久久久久久久久久看片| 在线免费精品视频| 韩国精品久久久| 亚洲成av人**亚洲成av**| 国产蜜臀av在线一区二区三区| 欧美午夜不卡在线观看免费| 国产成人h网站| 久久精品久久99精品久久| 亚洲欧洲综合另类在线| 久久影院视频免费| 91精品黄色片免费大全| 91小视频免费观看| 国产激情视频一区二区三区欧美| 亚洲线精品一区二区三区| 中文字幕av不卡| 亚洲精品一区在线观看| 777欧美精品| 欧美少妇性性性| 91亚洲午夜精品久久久久久| 国产乱码精品一区二区三区av| 日本在线播放一区二区三区| 亚洲一区二区三区四区在线| 久久色中文字幕| 久久影院午夜论| 亚洲精品一区二区三区香蕉| 91精品国产品国语在线不卡| 91极品美女在线| av不卡一区二区三区| 99vv1com这只有精品| 不卡的av在线播放| 成人av在线一区二区| va亚洲va日韩不卡在线观看| 不卡的av在线播放| 精品一区二区三区的国产在线播放 | 国产精品不卡一区| 中文在线一区二区| 欧美国产日韩一二三区| 欧美激情一区三区| 久久嫩草精品久久久精品一| 久久亚洲精品国产精品紫薇| 国产精品久久久久久久久图文区 | 国产亚洲美州欧州综合国 | 欧美mv和日韩mv的网站| 国产亚洲人成网站| 亚洲精品成人悠悠色影视| 首页国产丝袜综合| 国产精品77777| 欧洲精品一区二区| 日韩欧美在线综合网| 国产精品美女久久久久aⅴ| 一区二区三区视频在线看| 久久精品99久久久| 91麻豆免费看| 精品国产3级a| 亚洲女女做受ⅹxx高潮| 美女久久久精品| 99riav一区二区三区| 欧美一区二区三区四区高清| 国产精品水嫩水嫩| 日韩精品免费专区| www.亚洲在线| 欧美一区二区美女| 亚洲精品免费一二三区| 极品少妇xxxx精品少妇偷拍| 91官网在线观看| 久久久国产精品午夜一区ai换脸| 亚洲女同一区二区| 国产福利一区二区三区视频 | 国产精品久久久久久久岛一牛影视 | 久久老女人爱爱| 一区二区三区四区亚洲| 国产精品正在播放| 欧美一区二区三区视频| 亚洲激情综合网| 成人免费毛片高清视频| 精品日韩在线一区| 亚洲成人av电影| 99热精品国产| 欧美国产一区二区| 国模套图日韩精品一区二区| 欧美三级一区二区| 亚洲欧美一区二区不卡| 国产91综合一区在线观看| 欧美一级精品在线| 五月婷婷激情综合| 在线观看日韩av先锋影音电影院| 中文字幕不卡在线| 国产精品亚洲专一区二区三区 | 国产精品萝li| 国产二区国产一区在线观看| 欧美大片在线观看一区二区| 午夜精品久久久久久久久| 色综合久久久久| 亚洲男人的天堂在线aⅴ视频| 国产精品99久久久久久宅男| 精品国产一区二区三区久久久蜜月| 性久久久久久久久| 欧美三级中文字| 五月天亚洲精品| 91精品国产美女浴室洗澡无遮挡| 亚洲综合免费观看高清完整版 | 高清不卡在线观看av| 精品久久人人做人人爽| 日本欧美大码aⅴ在线播放| 日韩一区二区在线观看视频| 日本不卡一区二区三区| 欧美一区日韩一区| 久久9热精品视频|