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

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

?? gserver.cpp

?? 又一個利用網上尋呼提供商的web頁面來發送網上尋呼的程序
?? CPP
字號:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "GServer.h"
#include <stdio.h>
#pragma package(smart_init)
#define LineAdd(a,b) Lines->Insert(a,b)
//---------------------------------------------------------------------------
// ValidCtrCheck is used to assure that the components created do not have
// any pure virtual functions.
//
static inline void ValidCtrCheck(GServer *)
{
	new GServer(NULL);
}
//---------------------------------------------------------------------------
__fastcall GServer::GServer(TComponent* Owner)
	: TMemo(Owner)
{
sk=INVALID_SOCKET;
maxChaters=0;
bListen=false;
bDoorClose=false;
SRBuffer=NULL;
gsu=NULL;
szTemp=NULL;
tempBuffer=NULL;
id=1000;
CloseRefuse=1;
zeroInt=0xff;
dhSize=sizeof(DataHeader);
}
//---------------------------------------------------------------------------
namespace Gserver
{
	void __fastcall PACKAGE Register()
	{
		TComponentClass classes[1] = {__classid(GServer)};
		RegisterComponents("GControl", classes, 0);
	}
}
//---------------------------------------------------------------------------
bool GServer::Listen()
{
if(bListen)DisConnect();
//加入SSYSTEM各個成員變量的檢驗
Perform(WM_VSCROLL,SB_TOP,0);
sockaddr_in sock;
sock.sin_family=AF_INET;
sock.sin_port=htons(Port);
sock.sin_addr.s_addr=LocalIp();
if(sock.sin_addr.s_addr==INADDR_NONE){LineAdd(0,"獲取本機IP失敗!無法進入監聽模式!");return false;};
maxChaters=20;
tBufferSize=4096;
RBufferSize=2049;
SRBuffer=new char[4097];
gsu=new GServerUnit[maxChaters];
tempBuffer=new char[4097];
szTemp=new char[128];
ZeroMemory(SRBuffer,4097);
ZeroMemory(gsu,sizeof(GServerUnit)*maxChaters);
ZeroMemory(tempBuffer,4097);
ZeroMemory(szTemp,128);
for(int i=0;i<maxChaters;i++)gsu[i].sk=INVALID_SOCKET;
try
{
sk=socket(AF_INET,SOCK_STREAM,0);
if(sk==INVALID_SOCKET)throw 1;
int iRet=bind(sk,(sockaddr*)&sock,sizeof(sockaddr_in));
if(iRet==SOCKET_ERROR)
{
if(WSAGetLastError()==WSAEADDRINUSE)
	LineAdd(0,"該端口已經被使用!請使用其它端口!");
else
	LineAdd(0,"未知的Winsock錯誤!");
throw 1;
}
if(listen(sk,5)==SOCKET_ERROR){LineAdd(0,"無法進入監聽模式!");throw 1;}
if(WSAAsyncSelect(sk,Handle,WM_CHATSERVER,FD_ACCEPT)==SOCKET_ERROR){LineAdd(0,"異步消息選擇失敗!");throw 1;}
}
catch(...)
{
if(sk!=INVALID_SOCKET)closesocket(sk);
if(SRBuffer)delete[]SRBuffer;
if(szTemp)delete[]szTemp;
if(gsu)delete[]gsu;
if(tempBuffer)delete[]tempBuffer;
return false;
}
bListen=true;
LineAdd(0,"已經進入監聽模式!等待客戶連接!");
return true;
}

void GServer::DisConnect()
{
LeaveAll();
if(SRBuffer)delete[]SRBuffer;
if(szTemp)delete[]szTemp;
if(gsu)delete[]gsu;
if(tempBuffer)delete[]tempBuffer;
SRBuffer=NULL;
gsu=NULL;
szTemp=NULL;
tempBuffer=NULL;
if(sk!=INVALID_SOCKET)
{
WSAAsyncSelect(sk,Handle,0,0);
closesocket(sk);
sk=INVALID_SOCKET;
}
bListen=false;
maxChaters=0;
Perform(WM_VSCROLL,SB_TOP,0);
LineAdd(0,"已經退出監聽狀態!");
}


bool GServer::Accept(SOCKET tsk)
{
if(tsk!=sk)return false;
sockaddr_in sock;
int socklen=sizeof(sockaddr_in),i;
for(i=0;i<maxChaters;i++)
	if(gsu[i].sk==INVALID_SOCKET)break;
SOCKET tempsk=accept(tsk,(sockaddr*)&sock,&socklen);
id++;
//sprintf(szTemp,"來自%s的連接請求!分配ID:%d",inet_ntoa(sock.sin_addr),++id);
//LineAdd(szTemp);
if(FOnConnecting)FOnConnecting(this);
if(bDoorClose)
	{
	send(tempsk,&CloseRefuse,1,0);
	closesocket(tempsk);
	TListItem*tli=lv->Items->Add();//ID,呢稱,IP,狀態,接收字節數,發送字節數
	tli->Caption=id;
	tli->SubItems->Add("未知");
	tli->SubItems->Add(inet_ntoa(sock.sin_addr));
	tli->SubItems->Add("關門拒絕!");
	tli->SubItems->Add("0");
	tli->SubItems->Add("1");
//	sprintf(szTemp,"因為已經關門,拒絕了ID:%d的連接請求!",id--);
//	LineAdd(szTemp);
	return false;
	}
if(i>=maxChaters)
{
PGSU tgsu=new GServerUnit[maxChaters*2];
ZeroMemory(tgsu,sizeof(GServerUnit)*maxChaters*2);
memcpy(tgsu,gsu,sizeof(GServerUnit)*maxChaters);
maxChaters+=maxChaters;
delete[]gsu;
gsu=tgsu;
}
if(bImidiate)setsockopt(gsu[i].sk,IPPROTO_TCP,TCP_NODELAY,(char*)&bImidiate,sizeof(BOOL));
gsu[i].Comfirmed=false;
gsu[i].ai.id=id;
gsu[i].canWrite=true;
gsu[i].sk=tempsk;
strcpy(gsu[i].ai.Name,"<未驗證>");
gsu[i].SBuffer=new char[4097];
gsu[i].RBuffer=new char[2049];
gsu[i].SBufferSize=4096;
gsu[i].rbytes=0;
gsu[i].sbytes=0;
gsu[i].curSSize=0;
gsu[i].curRSize=0;
gsu[i].li=lv->Items->Add();//ID,呢稱,IP,狀態,接收字節數,發送字節數
gsu[i].li->Caption=id;
gsu[i].li->SubItems->Add(gsu[i].ai.Name);
gsu[i].li->SubItems->Add(inet_ntoa(sock.sin_addr));
gsu[i].li->SubItems->Add("等待驗證!");
gsu[i].li->SubItems->Add(gsu[i].rbytes);
gsu[i].li->SubItems->Add(gsu[i].sbytes);
if(WSAAsyncSelect(tempsk,Handle,WM_CHATSERVER,FD_READ|FD_WRITE|FD_CLOSE)==SOCKET_ERROR)
{Leave(i);return false;}
return true;
}

bool GServer::Read(SOCKET tsk)
{
int i=indexBySocket(tsk);
if(i<0)return false;
if(WSAAsyncSelect(tsk,Handle,WM_CHATSERVER,FD_WRITE|FD_CLOSE)==SOCKET_ERROR)
{Leave(i);return false;}
if(gsu[i].curRSize<0)gsu[i].curRSize=0;
int iRet=recv(tsk,gsu[i].RBuffer+gsu[i].curRSize,RBufferSize-gsu[i].curRSize,0);
if(iRet<=0){Leave(i);return false;}
/*FILE*fp=fopen("text.txt","wb+");
fwrite(gsu[i].RBuffer+gsu[i].curRSize,sizeof(char),iRet,fp);
fclose(fp);*/
gsu[i].rbytes+=iRet;
gsu[i].li->SubItems->Strings[LIRBYTES]=gsu[i].rbytes;
gsu[i].curRSize+=iRet;
tBuffer=gsu[i].RBuffer;
int nSize=(zeroInt&tBuffer[0]),nPos=0;
while(gsu[i].curRSize>=nSize)
{
if(gsu[i].Comfirmed)
	{memcpy(SRBuffer+nPos,tBuffer,nSize);nPos+=nSize;}
else
	{
	memcpy(szTemp,tBuffer,nSize);
	if(!Comfirm((PPINFO)(szTemp+1),i)){Leave(i);return false;}
	nPos=15+dhSize;
	}
gsu[i].curRSize-=nSize;
if(gsu[i].curRSize<=0)break;
tBuffer=(tBuffer+nSize);nSize=(zeroInt&tBuffer[0]);
}
if(nPos>0)SendAll(nPos);
if(gsu[i].curRSize>0){memcpy(szTemp,tBuffer,gsu[i].curRSize);memcpy(gsu[i].RBuffer,szTemp,gsu[i].curRSize);}
if(WSAAsyncSelect(tsk,Handle,WM_CHATSERVER,FD_READ|FD_WRITE|FD_CLOSE)==SOCKET_ERROR)
{Leave(i);return false;}
return true;
}

bool GServer::AddBuffer(int i,int len)
{
if(gsu[i].curSSize<0)gsu[i].curSSize=0;
if(len>(gsu[i].SBufferSize-gsu[i].curSSize))
	{
	if(len>gsu[i].SBufferSize)gsu[i].SBufferSize+=len;
	else
	gsu[i].SBufferSize=gsu[i].SBufferSize*2;
	if(gsu[i].SBufferSize>=20*1024){Leave(i);return false;}
	tBuffer=new char[gsu[i].SBufferSize+1];
	memcpy(tBuffer,gsu[i].SBuffer,gsu[i].curSSize);
	delete[]gsu[i].SBuffer;
	gsu[i].SBuffer=tBuffer;
	}
memcpy(gsu[i].SBuffer+gsu[i].curSSize,SRBuffer,len);
gsu[i].curSSize+=len;
return true;
}

void GServer::SendAll(int len)
{
for(int i=0;i<maxChaters;i++)
{
if(gsu[i].sk==INVALID_SOCKET||gsu[i].Comfirmed==false||AddBuffer(i,len)==false)continue;
Send(i);
}
}


void GServer::Send(int index)
{
if(index<0||gsu[index].canWrite==false||gsu[index].sk==INVALID_SOCKET)return;
if(gsu[index].curSSize<=0){gsu[index].curSSize=0;return;}
int len=send(gsu[index].sk,gsu[index].SBuffer,gsu[index].curSSize,0);
if(len==SOCKET_ERROR)
	{	
	if(WSAGetLastError()==WSAEWOULDBLOCK)gsu[index].canWrite=false;
	else
	Leave(index);
	return;	
	}
gsu[index].curSSize-=len;
if(gsu[index].curSSize>0)
	{
	if(gsu[index].curSSize>tBufferSize)
	{
	tBuffer=new char[gsu[index].curSSize+1];
	delete[]tempBuffer;
	tempBuffer=tBuffer;
	tBufferSize=gsu[index].curSSize;
	}
	memcpy(tempBuffer,gsu[index].SBuffer+len,gsu[index].curSSize);
	memcpy(gsu[index].SBuffer,tempBuffer,gsu[index].curSSize);
	}
gsu[index].sbytes+=len;
gsu[index].li->SubItems->Strings[LISBYTES]=gsu[index].sbytes;
}

void __fastcall GServer::SetImidiate(BOOL isi)
{
bImidiate=isi;
if(bListen==false)return;
for(int i=0;i<maxChaters;i++)
{
if(gsu[i].sk==INVALID_SOCKET)continue;
setsockopt(gsu[i].sk,IPPROTO_TCP,TCP_NODELAY,(char*)&isi,sizeof(BOOL));
}
}

void GServer::Leave(int index)
{
if(index<0||index>=maxChaters||gsu[index].sk==INVALID_SOCKET)return;
WSAAsyncSelect(gsu[index].sk,Handle,0,0);
closesocket(gsu[index].sk);
gsu[index].sk=INVALID_SOCKET;
if(gsu[index].Comfirmed)
	gsu[index].li->SubItems->Strings[LISTATUS]="連接斷開!";
else
	gsu[index].li->SubItems->Strings[LISTATUS]="驗證失敗!";
if(gsu[index].SBuffer)delete[] gsu[index].SBuffer;
if(gsu[index].RBuffer)delete[] gsu[index].RBuffer;
gsu[index].SBuffer=NULL;
gsu[index].RBuffer=NULL;
gsu[index].curSSize=0;
gsu[index].curRSize=0;
gsu[index].li->SubItems->Strings[LIRBYTES]=gsu[index].rbytes;
gsu[index].li->SubItems->Strings[LISBYTES]=gsu[index].sbytes;
if(gsu[index].Comfirmed)
{
int dellen=6+dhSize;
for(int i=0;i<maxChaters;i++)
{
if(gsu[i].sk==INVALID_SOCKET||gsu[i].Comfirmed==false)continue;
pdhchar=gsu[i].SBuffer+gsu[i].curSSize;
pdh=(PDATAHEADER)pdhchar;
pdh->cbsize=dellen;
pdh->cmd=3;
pdh->id=gsu[index].ai.id;
pdh->toid=gsu[index].ai.id;
pdh->color=(TColor)clRed;
strcpy(pdhchar+dhSize,"886!");
gsu[i].curSSize+=dellen;
Send(i);
}
}
gsu[index].ai.id=0;
gsu[index].Comfirmed=false;
if(FOnLeave)FOnLeave(this);
return;
}

void GServer::LeaveAll()
{
for(int i=0;i<maxChaters;i++)
	Leave(i);
closesocket(sk);
sk=INVALID_SOCKET;
bListen=false;
maxChaters=0;
}

void GServer::ListInfo()
{
int i,j=0;
Perform(WM_VSCROLL,SB_TOP,0);
LineAdd(0,"");
for(i=0;i<maxChaters;i++)
{
if(gsu[i].sk==INVALID_SOCKET)continue;
j++;
sprintf(szTemp,"ID:%d,呢稱:%s\r\n  接收緩沖:%d字節,發送緩沖:%d字節!",
	gsu[i].ai.id,gsu[i].ai.Name,RBufferSize,gsu[i].SBufferSize);
LineAdd(0,szTemp);
}
sprintf(szTemp,"在線:共%d人\r\n臨時緩沖:%d字節,系統緩沖%d字節!",j,tBufferSize,4096);
LineAdd(0,szTemp);
//Perform(WM_VSCROLL,SB_BOTTOM,0);
//this->Refresh();
}

void GServer::Kick(int tid)
{
Leave(indexByID(tid));
}

bool GServer::Comfirm(PPINFO ppi,int index)
{
if(strcmp(Password.c_str(),ppi->Password))return false;
gsu[index].Comfirmed=true;
memcpy(gsu[index].ai.Name,ppi->Name,15);
gsu[index].ai.Face=ppi->Face;
gsu[index].ai.Name[14]='\0';
//接下來加入LV中:
gsu[index].li->SubItems->Strings[LISTATUS]=AnsiString("通過驗證!");
gsu[index].li->SubItems->Strings[LINAME]=AnsiString(gsu[index].ai.Name);
//
int tsiSize=(15+dhSize)*Chaters();
if(tsiSize>(gsu[index].SBufferSize-128))
{
//擴大緩沖區
tBuffer=new char[tsiSize+1];
delete[]gsu[index].SBuffer;
gsu[index].SBuffer=tBuffer;
gsu[index].SBufferSize=tsiSize;
}
pdh=(PDATAHEADER)gsu[index].SBuffer;
pdh->cbsize=dhSize+WelcomMessage.Length();
pdh->cmd=1;
pdh->id=gsu[index].ai.id;
pdh->toid=gsu[index].ai.id;//在返回ID時為了安全,將ID,TOID都設為ID
pdh->color=(TColor)clRed;
memcpy(gsu[index].SBuffer+dhSize,WelcomMessage.c_str(),WelcomMessage.Length());
gsu[index].curSSize=pdh->cbsize;
for(int i=0;i<maxChaters;i++)
{
if(gsu[i].sk==INVALID_SOCKET||i==index||gsu[i].Comfirmed==false)continue;
pdhchar=gsu[index].SBuffer+gsu[index].curSSize;
pdh=(PDATAHEADER)pdhchar;
pdh->cbsize=15+dhSize;
pdh->cmd=2;
pdh->id=gsu[i].ai.id;
pdh->toid=gsu[i].ai.Face;
pdh->color=(TColor)clBlue;
memcpy(pdhchar+dhSize,gsu[i].ai.Name,15);
gsu[index].curSSize+=pdh->cbsize;
}
pdh=(PDATAHEADER)SRBuffer;
pdh->cbsize=15+dhSize;
pdh->cmd=2;
pdh->id=gsu[index].ai.id;
pdh->toid=gsu[index].ai.Face;//用TOID來存放FACE;
pdh->color=(TColor)clNavy;
memcpy(SRBuffer+dhSize,gsu[index].ai.Name,15);
return true;
}

int GServer::Chaters()
{
int j=0;
for(int i=0;i<maxChaters;i++)
	if(gsu[i].sk!=INVALID_SOCKET&&gsu[i].Comfirmed)j++;
return j;
}

int GServer::indexBySocket(SOCKET tsk)
{
if(tsk==INVALID_SOCKET)return -1;
for(int i=0;i<maxChaters;i++)
	if(tsk==gsu[i].sk)return i;
return -1;
}

int GServer::indexByID(int tid)
{
for(int i=0;i<maxChaters;i++)
	if(gsu[i].sk!=INVALID_SOCKET&&tid==gsu[i].ai.id)return i;
return -1;
}
void __fastcall GServer::HandleChat(TMessage&msg)
{
static int hci;
static SOCKET wsk;
wsk=(SOCKET)msg.WParam;
if(wsk!=sk)
{
	hci=indexBySocket(wsk);
	if(hci<0){closesocket(wsk);return;}
	if(msg.LParamHi){Leave(hci);return;}
}
else if(wsk==sk&&msg.LParamHi)
	{DisConnect();return;}
switch(msg.LParamLo)
{
case FD_ACCEPT:
	Accept(wsk);
	break;
case FD_READ:
	Read(wsk);
	break;
case FD_WRITE:
	Send(hci);
	break;
case FD_CLOSE:
	Leave(hci);
	break;
}
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
jvid福利写真一区二区三区| 色综合久久中文综合久久97| 不卡一区在线观看| 在线观看日韩一区| 亚洲精品一区二区三区在线观看| 久久久久久97三级| 久久精品二区亚洲w码| 激情文学综合插| 99国内精品久久| 久久久久久久久蜜桃| 日韩电影在线免费看| 色噜噜偷拍精品综合在线| 久久亚洲二区三区| 日韩电影一区二区三区| 在线精品观看国产| 成人欧美一区二区三区视频网页 | 久久人人97超碰com| 首页亚洲欧美制服丝腿| 91免费版pro下载短视频| 久久综合九色欧美综合狠狠| 日韩精品一区第一页| 欧美在线你懂得| 国产精品国产三级国产aⅴ原创| 国产一区中文字幕| 日韩你懂的在线播放| 美女视频网站久久| 欧美一区二区三区视频在线 | 久久99精品国产.久久久久久| 日本韩国一区二区三区视频| 中文字幕视频一区二区三区久| 免费高清在线一区| 欧美一区二区三区色| 午夜精品久久久| 日本久久一区二区三区| 一区二区在线电影| 欧美在线短视频| 综合网在线视频| 成人在线综合网| 国产日韩欧美一区二区三区综合| 久久精品久久99精品久久| 欧美日韩一区二区三区在线看| 国产精品美女一区二区| 成人精品在线视频观看| 国产精品系列在线| 99re热这里只有精品视频| 亚洲欧美乱综合| 欧美日韩国产免费| 欧美aⅴ一区二区三区视频| 日韩色在线观看| 国产一区二区三区日韩| 久久久久国色av免费看影院| 国产成人高清在线| 亚洲人xxxx| 色狠狠色噜噜噜综合网| 国产精品国产三级国产普通话蜜臀 | 欧美一卡在线观看| 男人的j进女人的j一区| 亚洲国产精品ⅴa在线观看| 成人国产在线观看| 亚洲电影激情视频网站| 久久久一区二区三区捆绑**| 不卡一区在线观看| 亚洲国产视频一区| 日韩欧美综合一区| 激情成人午夜视频| 中文字幕亚洲欧美在线不卡| 色94色欧美sute亚洲线路一ni| 一区二区视频在线| 日韩视频一区二区在线观看| 成人国产精品免费网站| 午夜精品久久久| 欧美极品少妇xxxxⅹ高跟鞋| 欧美亚洲动漫精品| 国产一区二区不卡老阿姨| 亚洲毛片av在线| 欧美大片在线观看| 99久久婷婷国产综合精品| 另类人妖一区二区av| 亚洲色欲色欲www| 精品毛片乱码1区2区3区| 99国产精品视频免费观看| 日韩1区2区日韩1区2区| 亚洲欧美日韩在线不卡| 久久免费国产精品| 欧美人成免费网站| 一本色道久久综合亚洲精品按摩| 麻豆国产精品官网| 亚洲综合在线视频| 中文字幕va一区二区三区| 91精品国产一区二区三区| 色综合久久久久久久| 国产成人免费视频网站高清观看视频| 亚洲妇熟xx妇色黄| 日韩毛片一二三区| 精品久久久久久久久久久久包黑料 | 亚洲小少妇裸体bbw| 国产欧美日韩在线看| 日韩午夜精品电影| 欧美日韩成人综合天天影院 | 国产精品日韩成人| 欧美日韩久久久| 99精品国产一区二区三区不卡| 久色婷婷小香蕉久久| 一区二区三区视频在线看| 中文字幕成人av| 亚洲国产成人在线| 国产日韩三级在线| 久久精品亚洲国产奇米99| 日韩欧美国产综合| 欧美xingq一区二区| 日韩西西人体444www| 51午夜精品国产| 欧美日韩午夜影院| 欧美日韩不卡一区| 欧美日韩久久一区二区| 欧美午夜精品一区二区蜜桃| 欧美伊人精品成人久久综合97| 成人免费毛片片v| 国内一区二区视频| 美女精品一区二区| 久久国产精品区| 日韩av一区二区在线影视| 亚洲成a人v欧美综合天堂| 亚洲影院在线观看| 一区二区欧美在线观看| 国产精品久线观看视频| 久久综合九色综合欧美就去吻| 日韩免费观看高清完整版| 555www色欧美视频| 精品黑人一区二区三区久久| 日韩一区二区免费高清| 日韩欧美一区二区视频| 精品国产成人系列| 国产视频在线观看一区二区三区 | 亚洲第一精品在线| 亚洲成av人影院| 性欧美大战久久久久久久久| 中文字幕在线播放不卡一区| 国产精品久久久久久久久果冻传媒| 久久女同精品一区二区| 2019国产精品| 最新国产の精品合集bt伙计| 国产精品理论片| 一区二区免费在线| 亚洲成av人影院| 日韩精品1区2区3区| 韩国理伦片一区二区三区在线播放| 日韩黄色小视频| 中文字幕亚洲欧美在线不卡| 亚洲自拍偷拍九九九| 亚洲午夜国产一区99re久久| 午夜日韩在线电影| 久久精品国产一区二区三区免费看 | 成人黄色在线视频| 欧美电影影音先锋| 日本一区二区三区电影| 亚洲国产精品久久一线不卡| 狠狠色丁香久久婷婷综合丁香| 99精品一区二区| 欧美一区二区播放| 亚洲自拍偷拍av| 国产成人免费在线| 91精品国产免费| 亚洲激情自拍偷拍| 成人中文字幕在线| 日韩免费福利电影在线观看| 伊人色综合久久天天人手人婷| 国内精品国产三级国产a久久| 色94色欧美sute亚洲线路一ni | 欧美亚洲日本国产| 久久九九全国免费| 日本成人在线看| 欧洲亚洲国产日韩| 专区另类欧美日韩| 国产精品99久久久久久久vr| 欧美一区二区三区四区视频 | 国产精品免费久久| 国内精品国产成人国产三级粉色| 欧美午夜片在线看| 一区二区三区在线观看国产| 国产美女在线观看一区| 69精品人人人人| 视频一区在线视频| 欧美调教femdomvk| 成人免费视频在线观看| 成人性生交大片免费看中文| 日韩精品专区在线影院观看 | 91精品国产欧美一区二区成人| 一区二区三区在线视频免费观看| 国产福利精品导航| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲女女做受ⅹxx高潮| 国产精品一区二区在线观看不卡| 337p亚洲精品色噜噜狠狠| 一区二区三区在线不卡| 色8久久精品久久久久久蜜 | 91视频在线观看| 国产精品久久久久影院亚瑟| 国产91精品一区二区| 国产精品天干天干在观线|