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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? tcp.c

?? 本例子演示的是利用單片機(jī)實(shí)現(xiàn)TCPip協(xié)議
?? C
字號(hào):
/*********************************************************************
 *			Copright(c) 2003,廣州周立功單片機(jī)發(fā)展有限公司 
 *						All rights reserved.
 *
 *文件名稱:	tcp.c
 *文件標(biāo)識(shí): 
 *摘    要: 在事件的驅(qū)動(dòng)下,按照狀態(tài)轉(zhuǎn)移圖進(jìn)行TCP協(xié)議的處理
 *
 *當(dāng)前版本: V1.0
 *完成日期: 2003.2.28
 *
 *
 *********************************************************************/
#define  TCP_GLOBALS
#include "net_cfg.h"

/*****************************************************************
**函數(shù)原型: 	void 	TCP1024_Init()
**入口參數(shù): 	無(wú)
**出口參數(shù): 	無(wú)
**返 回 值:		無(wú)
**功能說(shuō)明: 	初始化任務(wù)控制塊,使本地機(jī)進(jìn)入listen狀態(tài)并清空重發(fā)緩沖區(qū)
******************************************************************/
void TCP1024_Init()
{
TCP1024.State=0;
TCP1024.My_Port=MY_TCP_PORT;
TCP1024.Send_Next=0x0000;
Resend_Buff.EtherFrame.RecStatus=0;//表示該重發(fā)緩沖區(qū)沒(méi)有數(shù)據(jù)

}

//==============================================================
/**********************************************************************
**函數(shù)原型:    void        Send_Reset()
**入口參數(shù): 	無(wú)
**出口參數(shù): 	無(wú)
**返 回 值:		無(wú)
**功能說(shuō)明: 	發(fā)送TCP_RST數(shù)據(jù)報(bào)文,復(fù)位對(duì)方連接
******************************************************************/
void Send_Reset()
{ 
uchar i;
for(i=0;i<3;i++)
	{
	TxdNetBuff.EtherFrame.DestMacId[i]=RxdNetBuff.EtherFrame.SourceMacId[i];//目的網(wǎng)卡地址
	}
TxdNetBuff.EtherFrame.NextProtocal=0x0800;//協(xié)議為ip協(xié)議
TxdNetBuff.TcpFrame.SourcePort=RxdNetBuff.TcpFrame.DestPort;
TxdNetBuff.TcpFrame.DestPort=RxdNetBuff.TcpFrame.SourcePort;
TxdNetBuff.TcpFrame.offset=0x50;
TxdNetBuff.TcpFrame.window=0;
TxdNetBuff.TcpFrame.urg=0;
TxdNetBuff.TcpFrame.Crc=0;
TxdNetBuff.IpFrame.DestId[0]=RxdNetBuff.IpFrame.SourceIp[0];
TxdNetBuff.IpFrame.DestId[1]=RxdNetBuff.IpFrame.SourceIp[1];
TxdNetBuff.IpFrame.SourceIp[0]=My_Ip_Address.words[0];
TxdNetBuff.IpFrame.SourceIp[1]=My_Ip_Address.words[1];
TxdNetBuff.IpFrame.ttl=0;
TxdNetBuff.IpFrame.NextProtocal=6;//tcp
TxdNetBuff.IpFrame.Crc=20;
TxdNetBuff.TcpFrame.Crc=CreateTcpCrc();
Create_Ip_Frame(20,RxdNetBuff.IpFrame.SourceIp[0],RxdNetBuff.IpFrame.SourceIp[1],6);
}

/**********************************************************************
**函數(shù)原型:    void        Tcp_Listen( )
**入口參數(shù): 	無(wú)
**出口參數(shù): 	無(wú)
**返 回 值:	無(wú)
**功能說(shuō)明: 	本地機(jī)進(jìn)入listen狀態(tài),可以對(duì)TCP_SYN或TCP_FIN請(qǐng)求進(jìn)行處理
******************************************************************/
void Tcp_Listen()
{
	uchar i;
	/*if(RxdNetBuff.TcpFrame.control&(TCP_FIN))//reset
	{Send_Reset();}			//對(duì)方不接受請(qǐng)求,
	else*/
	if(RxdNetBuff.TcpFrame.control&TCP_SYN)//表示這是一個(gè)請(qǐng)求連接
	{
		for(i=0;i<2;i++)		//對(duì)方的ip地址
			{TCP1024.Dest_Ip[i]=RxdNetBuff.IpFrame.SourceIp[i];}
		for(i=0;i<3;i++)		//對(duì)方的以太網(wǎng)地址或網(wǎng)關(guān)地址
			{TCP1024.Dest_Mac_Id[i]=RxdNetBuff.EtherFrame.SourceMacId[i];}
		TCP1024.My_Port=MY_TCP_PORT;	//本機(jī)端口
		TCP1024.Dest_Port=RxdNetBuff.TcpFrame.SourcePort;//對(duì)方端口
		TCP1024.IRS=RxdNetBuff.TcpFrame.SeqNum;			//對(duì)方的初始化順序號(hào)
		TCP1024.Rcv_Next=RxdNetBuff.TcpFrame.SeqNum+1;	//對(duì)方的順序號(hào),用于確認(rèn)
		TCP1024.ISS=TCP1024.Send_Next;					//我的初始化順序號(hào)
		TCP1024.Sent_UnAck=TCP1024.ISS;					//我的未確認(rèn)得序號(hào)
		TCP1024.Send_Next=TCP1024.ISS+1;				//我的順序號(hào),用于發(fā)送
		TCP1024.My_Wl1=RxdNetBuff.TcpFrame.SeqNum;		//seq
		TCP1024.My_Wl2=TCP1024.Send_Next;				//
		TCP1024.Rcv_Window=RxdNetBuff.TcpFrame.window;	//對(duì)方的WINDOW大小
		TCP1024.Snd_Window=1024;						//通知對(duì)方本地最大接收1024字節(jié)的包,用于流控
		TCP1024.Dest_Max_Seg_Size=560;					//默認(rèn)為560
		if(RxdNetBuff.TcpFrame.offset>20)
		if(RxdNetBuff.TcpFrame.tcpdata[0]==0x02)
		if(RxdNetBuff.TcpFrame.tcpdata[1]==0x04)		//0204為最大segment選項(xiàng)
		{
			TCP1024.Dest_Max_Seg_Size=RxdNetBuff.TcpFrame.tcpdata[2]*256+RxdNetBuff.TcpFrame.tcpdata[3];
		}
		TCP1024.My_Max_Seg_Size=1460;//本地機(jī)可以接受最大的以太網(wǎng)數(shù)據(jù)包
		//===========以下建立應(yīng)答幀
		for(i=0;i<3;i++)//目的網(wǎng)卡地址
			{TxdNetBuff.EtherFrame.DestMacId[i]=TCP1024.Dest_Mac_Id[i];}
		TxdNetBuff.EtherFrame.NextProtocal=0x0800;//協(xié)議為ip協(xié)議
		TxdNetBuff.TcpFrame.SourcePort=TCP1024.My_Port;
		TxdNetBuff.TcpFrame.DestPort=TCP1024.Dest_Port;
		TxdNetBuff.TcpFrame.SeqNum=TCP1024.ISS;
		TxdNetBuff.TcpFrame.AckNum=TCP1024.Rcv_Next;

		TxdNetBuff.TcpFrame.offset=0x70;
		TxdNetBuff.TcpFrame.control=0x12; //syn+ack
		TxdNetBuff.TcpFrame.window=TCP1024.Snd_Window;
		TxdNetBuff.TcpFrame.urg=0;
		TxdNetBuff.TcpFrame.Crc=0;
		TxdNetBuff.IpPacket.IpPacket[20]=0x0204;//tcp選項(xiàng)
		TxdNetBuff.IpPacket.IpPacket[21]=TCP1024.My_Max_Seg_Size;
		TxdNetBuff.IpPacket.IpPacket[22]=0x0101;
		TxdNetBuff.IpPacket.IpPacket[23]=0x0101;
		TxdNetBuff.IpFrame.DestId[0]=TCP1024.Dest_Ip[0];
		TxdNetBuff.IpFrame.DestId[1]=TCP1024.Dest_Ip[1];
		TxdNetBuff.IpFrame.SourceIp[0]=My_Ip_Address.words[0];
		TxdNetBuff.IpFrame.SourceIp[1]=My_Ip_Address.words[1];
		TxdNetBuff.IpFrame.ttl=0;
		TxdNetBuff.IpFrame.NextProtocal=6;//tcp
		TxdNetBuff.IpFrame.Crc=28;
		TxdNetBuff.TcpFrame.Crc=CreateTcpCrc();
		Create_Ip_Frame(28,TCP1024.Dest_Ip[0],TCP1024.Dest_Ip[1],6);
		TCP1024.State=TCP_STATE_SYN_RCVD;//Tcp_SYN_Rec;
	}
	else if(RxdNetBuff.TcpFrame.control&TCP_RST)
		{;}
	else	
		{Send_Reset();}	
}
/**********************************************************************
**函數(shù)原型:    void        Delete_Socket()
**入口參數(shù): 	無(wú)
**出口參數(shù): 	無(wú)
**返 回 值:	無(wú)
**功能說(shuō)明: 	撤銷(xiāo)本地連接,并清空重發(fā)緩沖區(qū)
******************************************************************/
void Delete_Socket()
{
TcpConnected=0;
TCP1024.State=0;
TCP1024.ISS=TCP1024.ISS+10;//
Resend_Buff.EtherFrame.RecStatus=0;//表示該重發(fā)緩沖區(qū)沒(méi)有數(shù)據(jù)
Printf_String("Disconnect!\r\n");
}
/**********************************************************************
**函數(shù)原型:    void        Resend_Packet( )
**入口參數(shù): 	uchar   i
**出口參數(shù): 	無(wú)
**返 回 值:		無(wú)
**功能說(shuō)明: 	重發(fā)出錯(cuò)的數(shù)據(jù)包
******************************************************************/
void Resend_Packet()
{
uint ii;
uchar xdata *txd=&TxdNetBuff;
uchar xdata *rt;

rt=&Resend_Buff.bytes.bytebuf;
for(ii=0;ii<Resend_Buff.ResendFrame.length+4;ii++)
	{
	(*txd)=(*rt);
	rt++;
	txd++;
	}
Send_Packet(&TxdNetBuff,Resend_Buff.ResendFrame.length);
Resend_Buff.ResendFrame.timeout=RtTime;
}

/**********************************************************************
**函數(shù)原型:    void        Process_Resend_Buff( )
**入口參數(shù): 	無(wú)
**出口參數(shù): 	無(wú)
**返 回 值:		無(wú)
**功能說(shuō)明: 	根據(jù)接收數(shù)據(jù)的序號(hào)以及超時(shí)時(shí)間對(duì)重發(fā)緩沖區(qū)的數(shù)據(jù)進(jìn)行處理
******************************************************************/
void Process_Resend_Buff()
{

if(Resend_Buff.ResendFrame.timeout>0)
	Resend_Buff.ResendFrame.timeout--;	//數(shù)據(jù)報(bào)的重發(fā)次數(shù)減一,防止TCP死鎖
if(Resend_Buff.EtherFrame.RecStatus!=0)	//表示需要重發(fā)緩沖區(qū)的數(shù)據(jù)
	{
	if(Resend_Buff.TcpFrame.SeqNum<TCP1024.Sent_UnAck)
		//下一個(gè)待發(fā)送的數(shù)據(jù)的序號(hào)應(yīng)該大于TCP1024.Sent_UnAck,因?yàn)?		//tcp1024.snd_una表示上一個(gè)已發(fā)送的數(shù)據(jù)字節(jié)的序號(hào),如果
		//重發(fā)緩沖區(qū)的數(shù)據(jù)對(duì)應(yīng)的序號(hào)小于TCP1024.Sent_UnAck,則說(shuō)明數(shù)據(jù)
		//已正確發(fā)送了,重發(fā)緩沖區(qū)內(nèi)的備份的數(shù)據(jù)就沒(méi)有用了,因此
		//這個(gè)數(shù)據(jù)包已經(jīng)過(guò)期了,可以拋棄掉,將緩沖區(qū)置為無(wú)效。
   		{Resend_Buff.ResendFrame.RtStatus=0;}//該緩沖區(qū)無(wú)效
		
	else if(Resend_Buff.ResendFrame.timeout==0)//超時(shí),或重發(fā)次數(shù)到
	  	{//如果重發(fā)緩沖區(qū)的數(shù)據(jù)包的序號(hào)大于等于未或確認(rèn)的數(shù)據(jù)序號(hào)時(shí)待發(fā)送重發(fā)
       	Resend_Buff.ResendFrame.RtStatus++;//重發(fā)次數(shù)加一
		if(Resend_Buff.ResendFrame.RtStatus==TCP_MAX_RETXD)
			{	//重發(fā)TCP_MAX_RETXD次都無(wú)法正確發(fā)送時(shí),撤銷(xiāo)本地連接
			Delete_Socket();
		    }
		else	//繼續(xù)重發(fā)
           Resend_Packet();
		}
	}
}
/**********************************************************************
**函數(shù)原型:    void        Tcp_SYN_Sent( )
**入口參數(shù): 	無(wú)
**出口參數(shù): 	無(wú)
**返 回 值:	無(wú)
**功能說(shuō)明: 	本地機(jī)主動(dòng)發(fā)送SYN后,即可進(jìn)入本狀態(tài),該狀態(tài)下,
**        : 	可接收幾種數(shù)據(jù):tcp_rst或tcp_syn或tcp_syn+tcp_ack
******************************************************************/
void Tcp_SYN_Sent()
{
unsigned char i;
	if(((RxdNetBuff.TcpFrame.AckNum<=TCP1024.ISS)||(RxdNetBuff.TcpFrame.AckNum>TCP1024.Send_Next))
	&&(RxdNetBuff.TcpFrame.control&TCP_ACK))
	{	//對(duì)方發(fā)回的確認(rèn)號(hào)應(yīng)是我的初始化序號(hào)加1,若比我的初始化序號(hào)小
		//或大于我的下一個(gè)序號(hào),則說(shuō)明對(duì)方連接出錯(cuò)
		if(!(RxdNetBuff.TcpFrame.control&TCP_RST))
		{//對(duì)方不接受請(qǐng)求
			TxdNetBuff.TcpFrame.SeqNum=RxdNetBuff.TcpFrame.AckNum;
			TxdNetBuff.TcpFrame.AckNum=0;
			TxdNetBuff.TcpFrame.control=TCP_RST;
			Send_Reset();//復(fù)位對(duì)方連接
		}
		else//對(duì)方發(fā)來(lái)復(fù)位請(qǐng)求,因此撤銷(xiāo)本地的連接
			{Delete_Socket();}
	}
	else if(RxdNetBuff.TcpFrame.control&(TCP_SYN))
	{
		TCP1024.IRS=RxdNetBuff.TcpFrame.SeqNum;			//對(duì)方的初始化順序號(hào)
		TCP1024.Rcv_Next=RxdNetBuff.TcpFrame.SeqNum+1;	//對(duì)方的順序號(hào),我可以用于給對(duì)方確認(rèn)
		if(RxdNetBuff.TcpFrame.control&TCP_ACK)
		{
			TCP1024.Sent_UnAck=RxdNetBuff.TcpFrame.AckNum;//我的未或確認(rèn)得序號(hào)
			Process_Resend_Buff();
		}
		if(TCP1024.Sent_UnAck>=TCP1024.ISS)
		{	//表示在一個(gè)由我發(fā)起的三次連接的過(guò)程中,對(duì)方已經(jīng)對(duì)我的連接請(qǐng)求發(fā)回了確認(rèn)
			TCP1024.IRS=RxdNetBuff.TcpFrame.SeqNum;
			TCP1024.Rcv_Window=RxdNetBuff.TcpFrame.window;	//對(duì)方的window大小,表示對(duì)方可以接收的最大數(shù)據(jù)包的大小
			TCP1024.Dest_Max_Seg_Size=560;//默認(rèn)為560
			if(RxdNetBuff.TcpFrame.offset>20)
			if(RxdNetBuff.TcpFrame.tcpdata[0]==0x02)
			if(RxdNetBuff.TcpFrame.tcpdata[1]==0x04)//0204為最大segment選項(xiàng)
			{
			 	TCP1024.Dest_Max_Seg_Size=RxdNetBuff.TcpFrame.tcpdata[2]*256+RxdNetBuff.TcpFrame.tcpdata[3];
			}
			//發(fā)送確認(rèn)
			//===========以下建立應(yīng)答幀
			for(i=0;i<3;i++)//目的網(wǎng)卡地址
				{TxdNetBuff.EtherFrame.DestMacId[i]=TCP1024.Dest_Mac_Id[i];}
			TxdNetBuff.EtherFrame.NextProtocal=0x0800;//協(xié)議為ip協(xié)議
			TxdNetBuff.TcpFrame.SourcePort=TCP1024.My_Port;
			TxdNetBuff.TcpFrame.DestPort=TCP1024.Dest_Port;
			TxdNetBuff.TcpFrame.SeqNum=TCP1024.Send_Next;
			TxdNetBuff.TcpFrame.AckNum=TCP1024.Rcv_Next;
			TxdNetBuff.TcpFrame.offset=0x50;
			TxdNetBuff.TcpFrame.control=TCP_ACK; 
			TxdNetBuff.TcpFrame.window=TCP1024.Snd_Window;
			TxdNetBuff.TcpFrame.urg=0;
			TxdNetBuff.TcpFrame.Crc=0;
			TxdNetBuff.IpFrame.DestId[0]=TCP1024.Dest_Ip[0];
			TxdNetBuff.IpFrame.DestId[1]=TCP1024.Dest_Ip[1];
			TxdNetBuff.IpFrame.SourceIp[0]=My_Ip_Address.words[0];
			TxdNetBuff.IpFrame.SourceIp[1]=My_Ip_Address.words[1];
			TxdNetBuff.IpFrame.ttl=0;
			TxdNetBuff.IpFrame.NextProtocal=6;//tcp
			TxdNetBuff.IpFrame.Crc=20;
			TxdNetBuff.TcpFrame.Crc=CreateTcpCrc();
			Create_Ip_Frame(20,TCP1024.Dest_Ip[0],TCP1024.Dest_Ip[1],6);
			TCP1024.State=TCP_STATE_ESTABLISHED;
			TcpConnected=1;
			Printf_String("\r\nOK,connected.\r\nC:>");
		}
		else 
		{//說(shuō)明對(duì)方同時(shí)發(fā)出連接請(qǐng)求
			TCP1024.State=TCP_STATE_SYN_RCVD;
			//===========下面建立應(yīng)答幀
			for(i=0;i<3;i++)//目的網(wǎng)卡地址
				{TxdNetBuff.EtherFrame.DestMacId[i]=TCP1024.Dest_Mac_Id[i];}
			TxdNetBuff.EtherFrame.NextProtocal=0x0800;//以太網(wǎng)協(xié)議的下層協(xié)議為IP協(xié)議
			TxdNetBuff.TcpFrame.SourcePort=TCP1024.My_Port;
			TxdNetBuff.TcpFrame.DestPort=TCP1024.Dest_Port;
			TxdNetBuff.TcpFrame.SeqNum=TCP1024.Send_Next;
			TxdNetBuff.TcpFrame.AckNum=TCP1024.Rcv_Next;
			TxdNetBuff.TcpFrame.offset=0x70;
			TxdNetBuff.TcpFrame.control=TCP_ACK+TCP_SYN; //TCP_ACK+TCP_SYN
			TxdNetBuff.TcpFrame.window=TCP1024.Snd_Window;
			TxdNetBuff.TcpFrame.urg=0;
			TxdNetBuff.TcpFrame.Crc=0;
			TxdNetBuff.IpPacket.IpPacket[20]=0x0204;//有TCP選項(xiàng)
			TxdNetBuff.IpPacket.IpPacket[21]=TCP1024.My_Max_Seg_Size;
			TxdNetBuff.IpPacket.IpPacket[22]=0x0101;
			TxdNetBuff.IpPacket.IpPacket[23]=0x0101;
			TxdNetBuff.IpFrame.DestId[0]=TCP1024.Dest_Ip[0];
			TxdNetBuff.IpFrame.DestId[1]=TCP1024.Dest_Ip[1];
			TxdNetBuff.IpFrame.SourceIp[0]=My_Ip_Address.words[0];
			TxdNetBuff.IpFrame.SourceIp[1]=My_Ip_Address.words[1];
			TxdNetBuff.IpFrame.ttl=0;
			TxdNetBuff.IpFrame.NextProtocal=6;
			TxdNetBuff.IpFrame.Crc=28;
			TxdNetBuff.TcpFrame.Crc=CreateTcpCrc();
			Create_Ip_Frame(28,TCP1024.Dest_Ip[0],TCP1024.Dest_Ip[1],6);
		}
	}
}
/**********************************************************************
**函數(shù)原型:    void        Tcp_SYN_Rec( )
**入口參數(shù):		無(wú)
**出口參數(shù):		無(wú)
**返 回 值:

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久一二三区| 亚洲国产日产av| 日韩国产一二三区| 日本电影欧美片| 视频一区视频二区在线观看| 欧美精品欧美精品系列| 免费观看30秒视频久久| 51久久夜色精品国产麻豆| 尤物在线观看一区| 欧美特级限制片免费在线观看| 国产精品青草综合久久久久99| 国产乱码精品一区二区三| 久久精品网站免费观看| 国内精品写真在线观看| 亚洲国产精品国自产拍av| 成人精品鲁一区一区二区| 一区二区三区在线观看欧美| 欧美影院精品一区| 狠狠色丁香久久婷婷综合丁香| 精品国产乱码久久久久久蜜臀| 国产一区二区三区黄视频| 国产精品久久久99| 欧美一三区三区四区免费在线看| 久久精品国产网站| 日韩伦理电影网| 日韩欧美电影在线| 色综合一个色综合亚洲| 精品夜夜嗨av一区二区三区| 国产精品国产三级国产aⅴ中文| 欧日韩精品视频| 国产999精品久久久久久| 亚洲第一精品在线| 中文在线一区二区| 欧美电影一区二区| 91亚洲精华国产精华精华液| 精品写真视频在线观看| 亚洲最色的网站| 国产精品情趣视频| 久久精品在线免费观看| 欧美电影免费观看高清完整版| 91丨九色丨尤物| 国产成a人亚洲| 国产伦精品一区二区三区视频青涩 | 日韩精品一区第一页| 中文字幕人成不卡一区| 国产日韩v精品一区二区| 日韩一级片网址| 日韩午夜三级在线| 9191精品国产综合久久久久久| 99久久免费精品| 99国产精品国产精品毛片| 欧美三级蜜桃2在线观看| 91在线视频网址| 99re热视频这里只精品| 91啪在线观看| 欧美日韩国产一二三| 一区二区三国产精华液| 一区二区三区**美女毛片| 国产精品久久久久久久久免费樱桃| 国产欧美日韩三级| 中文字幕亚洲一区二区va在线| 国产精品系列在线| 久久不见久久见免费视频7| 日本午夜精品一区二区三区电影| 麻豆视频一区二区| 成人午夜精品一区二区三区| 在线观看亚洲精品视频| 欧美一级久久久| 久久久久国产精品人| 国产精品你懂的在线欣赏| 亚洲精品ww久久久久久p站| 青青青爽久久午夜综合久久午夜| 黑人巨大精品欧美黑白配亚洲| 国产·精品毛片| 欧美日韩一区二区在线观看| 日韩精品在线网站| 国产欧美日韩在线| 亚洲一二三四久久| 国产91精品免费| 欧美视频一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲成人手机在线| 91福利国产成人精品照片| 久久久久久免费网| 亚洲444eee在线观看| 成人激情小说网站| 久久九九影视网| 狠狠v欧美v日韩v亚洲ⅴ| 欧美高清精品3d| 亚洲精选一二三| 一本一道综合狠狠老| 国产三级一区二区| 韩国视频一区二区| 亚洲精品在线三区| 秋霞午夜av一区二区三区| 欧美视频一区在线观看| 一区二区三区四区五区视频在线观看| 久久66热re国产| 6080国产精品一区二区| 日韩精品久久久久久| 91麻豆自制传媒国产之光| 中文字幕一区二区三区四区 | 国产日韩欧美一区二区三区乱码| 首页欧美精品中文字幕| 91精选在线观看| 久久er精品视频| 国产精品灌醉下药二区| 99国产精品久| 亚洲一区二区三区三| 欧美另类高清zo欧美| 麻豆91小视频| 国产欧美一区二区在线观看| 国产成人免费视频网站 | 亚洲女人的天堂| 欧美视频中文字幕| 美女网站色91| 国产精品网站在线观看| 色94色欧美sute亚洲线路二| 午夜亚洲福利老司机| 久久这里只精品最新地址| 成人爱爱电影网址| 美腿丝袜亚洲一区| 中文字幕免费一区| 欧美日韩一卡二卡三卡| 国产在线国偷精品产拍免费yy| 亚洲三级视频在线观看| 日韩一区二区在线观看| 91国在线观看| 国产成人小视频| 亚洲成人动漫精品| 国产精品福利一区| 2017欧美狠狠色| 欧美日韩精品一二三区| 波多野结衣的一区二区三区| 香蕉加勒比综合久久| 国产精品对白交换视频 | 99久久精品国产一区二区三区| 美女网站视频久久| 亚洲第一精品在线| 亚洲欧美日韩系列| 国产精品久久久久久久久晋中 | 免费看精品久久片| 亚洲高清免费观看高清完整版在线观看 | 丁香激情综合国产| 久久国产精品99久久人人澡| 天堂成人国产精品一区| 午夜精品一区二区三区三上悠亚| 亚洲人成影院在线观看| 亚洲精品中文在线| 亚洲丝袜自拍清纯另类| 一区二区三区四区乱视频| 亚洲猫色日本管| 亚洲激情在线播放| 亚洲精品日韩综合观看成人91| 国产精品乱码一区二区三区软件| 国产片一区二区| 亚洲成人av免费| 高清成人在线观看| 99久久99久久精品免费看蜜桃| 成人国产精品免费网站| 欧美日韩一区二区三区四区| 欧美三级日本三级少妇99| 欧美一区二区三区不卡| 久久九九影视网| 一区二区三区四区精品在线视频| 偷窥少妇高潮呻吟av久久免费| 免费在线成人网| 色先锋资源久久综合| 欧美草草影院在线视频| 亚洲天堂网中文字| 黑人精品欧美一区二区蜜桃| 日本国产一区二区| 久久久精品tv| 婷婷综合在线观看| 色综合久久综合| 国产视频视频一区| 蜜臀久久久99精品久久久久久| 成人国产精品免费观看动漫| 91精品国产美女浴室洗澡无遮挡| 中文字幕精品综合| 韩国精品在线观看| 欧美日韩黄色一区二区| 国产精品国产馆在线真实露脸| 狠狠v欧美v日韩v亚洲ⅴ| 欧美乱熟臀69xxxxxx| 亚洲欧美视频一区| 99re在线视频这里只有精品| 国产精品三级在线观看| 日韩精品欧美精品| 欧美精品视频www在线观看 | 国产欧美日韩在线看| 国产综合色视频| 欧美r级在线观看| 日本午夜精品视频在线观看| 欧美一卡2卡三卡4卡5免费| 手机精品视频在线观看| 欧美人与性动xxxx| 日韩—二三区免费观看av| 4438x成人网最大色成网站| 丝袜美腿亚洲综合|