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

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

?? threadproc.cpp

?? 這是數據傳輸的代碼
?? CPP
字號:

#include "ThreadProc.h"
#include "io.h"
#include "sys/stat.h"

void GetFileName(char *pPathName,char *pFileName)
{
	int n;
	n = strlen(pPathName);
	
	while(pPathName[--n]!='\\')
		;
	strcpy(pFileName,&pPathName[n+1]);
}

void GetFilePath(char *pPathName,char *pPath)
{
		int n;
	n = strlen(pPathName);
	
	while(pPathName[--n]!='\\')
		;
	memcpy(pPath,pPathName,n);
	pPath[n]=0;
}
void GetFileExtention(char *pFileName,char *pName,char *pExt)
{
	int i,n;
	pName[0]=0;
	pExt[0]=0;
	n=strlen(pFileName);
	
	for(i=0;i<n;i++)
	{
		if(pFileName[i]=='.')
			break;
	}
	memcpy(pName,pFileName,i);
	pName[i]=0;
	strcpy(pExt,&pFileName[i+1]);
}

void VerifyFileName(char *p)
{
	int n;
	char	tmp[512];
	char	dir[256],name[128];
	char	file[128],ext[32];

	n=1;
	strcpy(tmp,p);
	GetFileName(p,name);
	GetFilePath(p,dir);
	GetFileExtention(name,file,ext);
	while(access(tmp,0)==0)
	{
		sprintf(tmp,"%s\\%s(%d).%s",dir,file,n++,ext);
	}
	strcpy(p,tmp);	
}

void DWORD2BYTE(char *p,DWORD dw)
{
	unsigned char tmp[4];
	tmp[0]=(unsigned char) (dw>>24)&0x000000ff;
	tmp[1]=(unsigned char) (dw>>16)&0x000000ff;
	tmp[2]=(unsigned char) (dw>> 8)&0x000000ff;
	tmp[3]=(unsigned char) (dw)&0x000000ff;
	memcpy(p,tmp,4);
}

DWORD BYTE2DWORD(char *p)
{
	DWORD dw;
	unsigned char tmp[4];
	memcpy(tmp,p,4);
	dw = ( ((DWORD)tmp[0])<<24 &0xff000000 )|
		 ( ((DWORD)tmp[1])<<16 &0x00ff0000 )|
		 ( ((DWORD)tmp[2])<<8  &0x0000ff00 )|
		 ( ((DWORD)tmp[3])     &0x000000ff );
	return dw;
}

UINT ServiceProc(LPVOID  lp)
{
//	return 0;}

	SERVICEPARM *p=(SERVICEPARM*)lp;
	SOCKET s;
	sockaddr_in addr;
	int			addrlen;
	SERVICEPARM *pTmp;
	while(1)
	{
		addrlen = sizeof(addr);
		s = accept(p->sockservice,(struct sockaddr*)&addr,&addrlen);
		if(s==INVALID_SOCKET)
		{
			break;
		}
		else
		{
			pTmp = (SERVICEPARM *)malloc(sizeof(SERVICEPARM));
			pTmp->hwndServerDlg=p->hwndServerDlg;
			strcpy(pTmp->path,p->path);
			pTmp->sockservice=s;
			if(AfxBeginThread(RecvDataProc,pTmp))
			{}
			else
			{
				closesocket(s);
				free(pTmp);
			}
		}
	}
	::SendMessage(p->hwndServerDlg,WM_THREADMSG,MSG_SERVICE_STOP,(LPARAM)0);
	Sleep(800);
	return 0;
}


UINT RecvDataProc(LPVOID p)
{
	SERVICEPARM *pTmp;
	FILE *fd=NULL;
	pTmp=(SERVICEPARM *)p;
	struct timeval			tv;
	fd_set				readset;
	int					selret;
	char				buf[BUF_LEN];
	int					readlen;
	DWORD				nFileLen,nLeftLen;
	char				msg[1024];

// recv file name
	FD_ZERO(&readset);
	FD_SET(pTmp->sockservice,&readset);
	tv.tv_sec = TIMEOUT;
	tv.tv_usec= 0;
	
	selret = select(pTmp->sockservice+1,&readset,NULL,NULL,&tv);
	if(selret==0 || selret==SOCKET_ERROR)
	{
		closesocket(pTmp->sockservice);
		free(pTmp);
		return 1;
	}	
	readlen=recv(pTmp->sockservice,buf,BUF_LEN,0);//receive file name
	if(readlen==0 || readlen==SOCKET_ERROR)
	{
		closesocket(pTmp->sockservice);
		free(pTmp);
		return 1;
	}
	else
	{
		buf[readlen]=0;
	}
	strcat(pTmp->path,"\\");
	strcat(pTmp->path,buf);
	VerifyFileName(pTmp->path);
	fd=fopen(pTmp->path,"wb");
	if(fd==NULL)
	{
		sprintf(msg,"打開文件%s失敗!\r\n",pTmp->path);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);
		closesocket(pTmp->sockservice);
		free(pTmp);		
		return 2;
	}
	send(pTmp->sockservice,"OK",2,0);
//recv file length
	FD_ZERO(&readset);
	FD_SET(pTmp->sockservice,&readset);
	tv.tv_sec = TIMEOUT;
	tv.tv_usec= 0;

	selret = select(pTmp->sockservice+1,&readset,NULL,NULL,&tv);
	if(selret==0 || selret==SOCKET_ERROR)
	{
		closesocket(pTmp->sockservice);
		free(pTmp);
		fclose(fd);
		return 1;
	}	
	readlen=recv(pTmp->sockservice,buf,4,0);//receive file length
	if(readlen !=4 )
	{
		closesocket(pTmp->sockservice);
		free(pTmp);
		fclose(fd);
		return 1;
	}
	nFileLen = BYTE2DWORD(buf);
	send(pTmp->sockservice,"OK",2,0);
//recv file data
	sprintf(msg,"正在接收文件%s...\r\n",pTmp->path);
	::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
	::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);

	nLeftLen = nFileLen;
	while(nLeftLen)
	{
		FD_ZERO(&readset);
		FD_SET(pTmp->sockservice,&readset);
		tv.tv_sec = TIMEOUT+12;
		tv.tv_usec= 0;
//		FILE *fd;
		selret = select(pTmp->sockservice+1,&readset,NULL,NULL,&tv);
		if(selret==0 || selret==SOCKET_ERROR)
		{
			sprintf(msg,"接收文件數據超時0x%08x\r\n",selret);
			::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
			::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);
			Sleep(500);
			closesocket(pTmp->sockservice);
			fclose(fd);
			free(pTmp);
			return 1;
		}
		readlen=recv(pTmp->sockservice,buf,BUF_LEN,0);
		if(readlen==0 || readlen==SOCKET_ERROR)
		{
			sprintf(msg,"接收文件數據出錯,客戶端可能關閉連接。0x%08x\r\n",readlen);
			::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
			::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);

			Sleep(500);
			closesocket(pTmp->sockservice);
			fclose(fd);
			free(pTmp);
			return 1;
		}
		else
		{
			fwrite(buf,1,readlen,fd);
			nLeftLen -= readlen;
			::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_RECV_DATA,readlen);
			fflush(fd);
		}
	}

	sprintf(msg,"接收文件完成!\r\n");
	::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
	::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);

	fclose(fd);
	closesocket(pTmp->sockservice);
	free(pTmp);
	return 0;
}

UINT SendDataProc(LPVOID p)
{
	SERVICEPARM *pTmp =(SERVICEPARM *)p ;
	FILE *fd;
	char	buf[BUF_LEN];
	int		nReadLen,nTotalLen,nLeftLen,nSendLen;
	struct stat filestat;
	struct timeval		tv;
	fd_set				readset;
	int					selret;
	char				msg[1024];

	stat(pTmp->path,&filestat);
	nTotalLen = filestat.st_size;

 	nLeftLen = nTotalLen;

	fd=fopen(pTmp->path,"rb");
 	if(fd==NULL)
	{
		sprintf(msg,"打開文件%s失敗!\r\n",pTmp->path);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);

		closesocket(pTmp->sockservice);
		free(pTmp);
		return 1;
	}
  	GetFileName(pTmp->path,buf);
//send file name
	tv.tv_sec = TIMEOUT;
	tv.tv_usec = 0;
	FD_ZERO(&readset);
	FD_SET(pTmp->sockservice,&readset);

	selret = select(pTmp->sockservice+1,NULL,&readset,NULL,&tv);
	if(selret==0||selret==SOCKET_ERROR)
	{
		sprintf(msg,"Send File Name fail, select result: 0x%08x\r\n",selret);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);

		closesocket(pTmp->sockservice);
		free(pTmp);
		fclose(fd);
		return 1;
	}
	nSendLen = send(pTmp->sockservice,buf,strlen(buf),0);
	if((unsigned int)nSendLen!=strlen(buf))
	{
		sprintf(msg,"Send File Name fail, send result: 0x%08x\r\n",nSendLen);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);

		closesocket(pTmp->sockservice);
		free(pTmp);
		fclose(fd);
		return 1;
	}
	tv.tv_sec = TIMEOUT;
	tv.tv_usec = 0;
	FD_ZERO(&readset);
	FD_SET(pTmp->sockservice,&readset);

	selret = select(pTmp->sockservice+1,&readset,NULL,NULL,&tv);
	if(selret==0||selret==SOCKET_ERROR)
	{
		sprintf(msg,"select result: 0x%08x\r\n",selret);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);

		closesocket(pTmp->sockservice);
		free(pTmp);
		fclose(fd);
		return 1;
	}
	nSendLen=recv(pTmp->sockservice,buf,2,0);
	if(nSendLen!=2)
	{
		sprintf(msg,"recv  result: 0x%08x\r\n",nSendLen);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);


		closesocket(pTmp->sockservice);
		free(pTmp);
		fclose(fd);
		return 1;
	}

//send file length /

	tv.tv_sec = TIMEOUT;
	tv.tv_usec = 0;
	FD_ZERO(&readset);
	FD_SET(pTmp->sockservice,&readset);

	selret = select(pTmp->sockservice+1,NULL,&readset,NULL,&tv);
	if(selret==0||selret==SOCKET_ERROR)
	{
		sprintf(msg," select result: 0x%08x\r\n",selret);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);

		closesocket(pTmp->sockservice);
		free(pTmp);
		fclose(fd);
		return 1;
	}
	DWORD2BYTE(buf,(DWORD)nTotalLen);
	nSendLen = send(pTmp->sockservice,buf,4,0);
	if(nSendLen!=4)
	{
		sprintf(msg,"Send File len fail, send result: 0x%08x\r\n",nSendLen);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);

		closesocket(pTmp->sockservice);
		free(pTmp);
		fclose(fd);
		return 1;
	}

	tv.tv_sec = TIMEOUT;
	tv.tv_usec = 0;
	FD_ZERO(&readset);
	FD_SET(pTmp->sockservice,&readset);

	selret = select(pTmp->sockservice+1,&readset,NULL,NULL,&tv);
	if(selret==0||selret==SOCKET_ERROR)
	{
		sprintf(msg," select result: 0x%08x\r\n",selret);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);

		closesocket(pTmp->sockservice);
		free(pTmp);
		fclose(fd);
		return 1;
	}
	nSendLen=recv(pTmp->sockservice,buf,2,0);
	if(nSendLen!=2)
	{
		sprintf(msg,"recv  result: 0x%08x\r\n",nSendLen);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);

		closesocket(pTmp->sockservice);
		free(pTmp);
		fclose(fd);
		return 1;
	}
/// send file data //////////////////////////////////////////////////////

	sprintf(msg,"正在發送文件%s...\r\n",pTmp->path);
	::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
	
	while(nLeftLen)
	{
		nReadLen=fread(buf,1,BUF_LEN,fd);
	
		tv.tv_sec = TIMEOUT;
		tv.tv_usec = 0;
		FD_ZERO(&readset);
		FD_SET(pTmp->sockservice,&readset);

		selret = select(pTmp->sockservice+1,NULL,&readset,NULL,&tv);
		if(selret==0||selret==SOCKET_ERROR)
		{
			sprintf(msg,"發送文件數據出錯,可能連接被斷開。select result: 0x%08x\r\n",selret);
			::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
			::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);

			closesocket(pTmp->sockservice);
			free(pTmp);
			fclose(fd);
			return 1;
		}

		nSendLen = send(pTmp->sockservice,buf,nReadLen,0);
		if(nSendLen != nReadLen)
		{
			sprintf(msg,"發送文件數據出錯,可能連接被斷開。send result: 0x%08x\r\n",nSendLen);
			::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
			::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);

			closesocket(pTmp->sockservice);
			free(pTmp);
			fclose(fd);
			return 1;
		}
		nLeftLen -= nReadLen;
		//sprintf(msg,"%d/%d\r\n",nLeftLen,nTotalLen);
		::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SEND_DATA,(LPARAM)nReadLen);
		if (pTmp->nTime > 0)
			Sleep(pTmp->nTime);
		
	}
	sprintf(msg,"發送文件%s完成!\r\n",pTmp->path);
	::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_SHOWMSG,(LPARAM)&msg[0]);
	::SendMessage(pTmp->hwndServerDlg,WM_THREADMSG,MSG_THREADEXIT,(LPARAM)0);

	closesocket(pTmp->sockservice);
	free(pTmp);
	fclose(fd);
	return 0;
}


int CheckAddrType(char *addr ,DWORD *dw)
{
	char	p[512];
	int		n,i,dotnumber,j;
	n=strlen(addr);	
	int		k[4];
	memset(p,0,sizeof(p));
	*dw=0;
	
	j=0;
	dotnumber=0;
	for(i=0;i<n;i++)
	{
		if(addr[i]=='.')
		{
			p[j]=0;
			k[dotnumber]=atoi(p);
			if(k[dotnumber]>255)
				return 0;
			dotnumber++;
			if(dotnumber>3)
				return 0;
			j=0;
			continue;
		}
 		else if( (addr[i]<='9') && (addr[i]>='0') )
		{
			p[j++]=addr[i];
		}
		else
		{
			return 0;
		}
	}
	p[j]=0;
	k[3]=atoi(p);
	*dw=(k[0]<<24)&0xff000000 |
		(k[1]<<16)&0x00ff0000 |
		(k[2]<<8) &0x0000ff00 |
		(k[3])&0x000000ff;
	return 1;
}


int GetAddr(char *addr ,DWORD *dwip)
{
	struct hostent	*ht;
	
	//strcpy(addr,(char*)(LPCTSTR)this->m_strAddr);

	if(!CheckAddrType(addr,dwip))
	{
		ht=gethostbyname(addr);
		if(ht)
		{
			memcpy(dwip,ht->h_addr_list[0],4);
			*dwip=htonl(*dwip);
		}
		else
		{
			return 1;
		}

	}
	return 0;
}

int WINAPI C_BrowsePath(HWND hwndParent,char *pPath,char *pDisplayString)
{
	BROWSEINFO bi;
	LPITEMIDLIST  p;
	char	a[MAX_PATH+1];

	bi.hwndOwner  =hwndParent;
	bi.pidlRoot=NULL;
	bi.pszDisplayName=a;
	bi.lpszTitle =pDisplayString;
	bi.ulFlags =BIF_RETURNONLYFSDIRS |0x0040;//BIF_NEWDIALOGSTYLE
	bi.lpfn =NULL;
	bi.lParam =0;
	bi.iImage =0;
	pPath[0]=0;
	p=SHBrowseForFolder(&bi); 
	if(p)
	{
		if(SHGetPathFromIDList(p,a))
		{
			strcpy(pPath,a);
			return 0;
		}
		else
		{
			return 1;
		}
	}
	else
		return 1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人午夜精品5599| 久久众筹精品私拍模特| 久久综合九色综合97婷婷| 国产精品日产欧美久久久久| 天堂成人免费av电影一区| 成人久久视频在线观看| 日韩欧美一级二级三级| 一区二区三区免费在线观看| 国产一区二区在线观看视频| 91福利社在线观看| 中文字幕在线不卡视频| 久久精品国产一区二区三 | 国产精品色一区二区三区| 亚洲图片有声小说| 成人v精品蜜桃久久一区| 欧美zozo另类异族| 日韩高清欧美激情| 欧美性生活一区| 亚洲免费观看高清在线观看| 国产91精品精华液一区二区三区 | 91美女片黄在线观看| 久久午夜电影网| 免费观看在线综合| 91豆麻精品91久久久久久| 国产精品女人毛片| 福利91精品一区二区三区| 精品国产乱码久久久久久闺蜜| 亚洲成人动漫在线免费观看| 欧美日韩国产成人在线免费| 国产精品久久久久永久免费观看| 久久电影网电视剧免费观看| 欧美日韩高清在线| 亚洲国产欧美在线| 欧美人牲a欧美精品| 午夜精品久久久久久久| 欧美日韩免费电影| 亚洲成av人片一区二区| 欧美电影影音先锋| 日韩av中文字幕一区二区 | 一区二区三区高清在线| 日本丶国产丶欧美色综合| 亚洲女同ⅹxx女同tv| 欧洲视频一区二区| 亚洲电影在线免费观看| 欧美浪妇xxxx高跟鞋交| 日韩电影在线一区二区| 欧美成人精品高清在线播放| 国产精品自在在线| 国产日韩欧美一区二区三区乱码 | 欧美日本国产一区| 日本欧美一区二区三区乱码| 欧美成人一区二区三区| 97se亚洲国产综合自在线不卡| 国产精品午夜免费| 欧美在线一区二区三区| 日本成人中文字幕在线视频| 久久久青草青青国产亚洲免观| 国产成人综合亚洲网站| 亚洲精品国久久99热| 欧美日韩一区二区电影| 精品一区二区精品| 亚洲婷婷综合久久一本伊一区| 欧美性色欧美a在线播放| 麻豆国产精品官网| 国产精品家庭影院| 欧美一级黄色录像| 成人一区二区三区中文字幕| 亚洲在线视频网站| 日韩精品一区在线观看| 99久久99久久精品国产片果冻 | 日本一二三四高清不卡| 欧美午夜理伦三级在线观看| 美国十次综合导航| 亚洲欧美日韩人成在线播放| 91精品欧美久久久久久动漫| 国产成人激情av| 日韩一区欧美二区| 国产精品系列在线| 91精品国产色综合久久ai换脸| 成熟亚洲日本毛茸茸凸凹| 亚洲动漫第一页| 国产精品久久久久久久久果冻传媒| 在线电影欧美成精品| 成人的网站免费观看| 麻豆成人91精品二区三区| 亚洲精品久久7777| 国产精品色婷婷久久58| 日韩女优毛片在线| 欧美片网站yy| 色国产精品一区在线观看| 国产精品中文有码| 蜜臀99久久精品久久久久久软件| 椎名由奈av一区二区三区| 欧美电影免费观看高清完整版在线观看| 91在线云播放| 国产成人激情av| 激情综合五月婷婷| 日韩电影在线一区二区| 亚洲一区二区在线观看视频| 国产精品天干天干在观线| 久久视频一区二区| 欧美一级二级三级蜜桃| 欧美日韩免费电影| 欧美三级在线播放| 欧美影视一区二区三区| 色综合婷婷久久| 成人免费va视频| 成a人片亚洲日本久久| 国产精品亚洲一区二区三区在线| 精品综合久久久久久8888| 丝袜美腿亚洲综合| 五月综合激情日本mⅴ| 亚洲国产wwwccc36天堂| 一区二区三区 在线观看视频| 亚洲图片另类小说| 亚洲美女屁股眼交3| 一区二区三区免费观看| 亚洲成人三级小说| 丝袜诱惑亚洲看片| 蜜臀久久99精品久久久久久9 | 五月激情丁香一区二区三区| 亚洲精品videosex极品| 亚洲免费在线观看视频| 亚洲美女免费视频| 午夜精品123| 久久精品久久99精品久久| 久久99精品视频| 国产大陆精品国产| 99久久婷婷国产| 欧美午夜视频网站| 日韩精品一区二区三区三区免费 | 欧美日韩午夜精品| 日韩欧美一区二区三区在线| 2020日本不卡一区二区视频| 中文字幕av一区二区三区| 亚洲婷婷综合久久一本伊一区| 一区二区在线看| 日产欧产美韩系列久久99| 久久99精品久久久久| 成人av免费在线| 欧美日韩综合色| 日韩免费观看2025年上映的电影| 久久中文娱乐网| 亚洲精品五月天| 久久99精品久久久久久动态图| 粉嫩av一区二区三区| 欧美性淫爽ww久久久久无| 日韩美女一区二区三区| 国产精品免费视频观看| 亚洲午夜久久久久| 国产乱码精品一区二区三| 色系网站成人免费| 欧美xxxx老人做受| 亚洲精品综合在线| 精品无人区卡一卡二卡三乱码免费卡 | 另类欧美日韩国产在线| 成人99免费视频| 欧美喷水一区二区| 国产精品久久毛片av大全日韩| 亚洲一区二区三区四区不卡| 国产在线一区二区| 欧美性色黄大片| 国产精品欧美一级免费| 日欧美一区二区| 成人福利视频在线| 精品国产一区二区三区忘忧草 | 视频一区二区中文字幕| 国产宾馆实践打屁股91| 欧美久久一二三四区| 亚洲国产高清在线观看视频| 日韩专区一卡二卡| 91社区在线播放| 欧美激情一区在线观看| 午夜亚洲国产au精品一区二区| 处破女av一区二区| 久久综合九色欧美综合狠狠| 亚洲资源中文字幕| 91农村精品一区二区在线| 欧美v日韩v国产v| 亚洲gay无套男同| 一本大道av一区二区在线播放| 久久人人97超碰com| 日韩在线播放一区二区| 欧美在线小视频| 亚洲欧美日韩一区| 成人精品电影在线观看| 精品av综合导航| 久久国产夜色精品鲁鲁99| 欧美日本韩国一区二区三区视频 | 日韩精品午夜视频| 99精品视频在线播放观看| 国产日产欧美一区二区三区 | 91麻豆高清视频| 日本一区二区电影| 成人精品小蝌蚪| 国产午夜精品福利| 成人永久aaa| 亚洲蜜臀av乱码久久精品| 91年精品国产| 亚洲一级电影视频|