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

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

?? sdasd.txt

?? unix socket programmer
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
文件傳輸協(xié)議(File Transfer Protocol, FTP) (閱覽 7095 次)

轉帖


  Echo Protocol
這個協(xié)議可能是我知道的最簡單的協(xié)議了。它主要用于調試和檢測中。這個協(xié)議的作用也十分簡單,接收到什么原封發(fā)回就是了。它可以基于TCP協(xié)議,服務器就在TCP端口7檢測有無消息,如果有發(fā)送來的消息直接返回就是了。如果使用UDP協(xié)議的基本過程和TCP一樣,也是收到什么返回什么,檢測的端口也是7。
件傳輸協(xié)議(File Transfer Protocol, FTP)
關鍵字:socket
2003-10-26 19:10:23  雨中漫步  點擊: 7679  [轉貼文檔] 
Beej網絡socket編程指南 
-------------------------------------------------------------------------------- 
介紹 
  Socket 編程讓你沮喪嗎?從man pages中很難得到有用的信息嗎?你想跟上時代去編Internet相關的程序,但是為你在調用 connect() 前的bind() 的結構而不知所措?等等… 
好在我已經將這些事完成了,我將和所有人共享我的知識了。如果你了解 C 語言并想穿過網絡編程的沼澤,那么你來對地方了。 
-------------------------------------------------------------------------------- 
讀者對象 
  這個文檔是一個指南,而不是參考書。如果你剛開始 socket 編程并想找一本入門書,那么你是我的讀者。但這不是一本完全的 socket 編程書。 
-------------------------------------------------------------------------------- 
平臺和編譯器 
  這篇文檔中的大多數(shù)代碼都在 Linux 平臺PC 上用 GNU 的 gcc 成功編譯過。而且它們在 HPUX平臺 上用 gcc 也成功編譯過。但是注意,并不是每個代碼片段都獨立測試過。 
-------------------------------------------------------------------------------- 
目錄: 
1) 什么是套接字? 
2) Internet 套接字的兩種類型 
3) 網絡理論 
4) 結構體 
5) 本機轉換 
6) IP 地址和如何處理它們 
7) socket()函數(shù) 
8) bind()函數(shù) 
9) connect()函數(shù) 
10) listen()函數(shù) 
11) accept()函數(shù) 
12) send()和recv()函數(shù) 
13) sendto()和recvfrom()函數(shù) 
14) close()和shutdown()函數(shù) 
15) getpeername()函數(shù) 
16) gethostname()函數(shù) 
17) 域名服務(DNS) 
18) 客戶-服務器背景知識 
19) 簡單的服務器 
20) 簡單的客戶端 
21) 數(shù)據(jù)報套接字Socket 
22) 阻塞 
23) select()--多路同步I/O 
24) 參考資料 
-------------------------------------------------------------------------------- 
什么是 socket? 
  你經常聽到人們談論著 “socket”,或許你還不知道它的確切含義?,F(xiàn)在讓我告訴你:它是使用 標準Unix 文件描述符 (file descriptor) 和其它程序通訊的方式。什么?你也許聽到一些Unix高手(hacker)這樣說過:“呀,Unix中的一切就是文件!”那個家伙也許正在說到一個事實:Unix 程序在執(zhí)行任何形式的 I/O 的時候,程序是在讀或者寫一個文件描述符。一個文件描述符只是一個和打開的文件相關聯(lián)的整數(shù)。但是(注意后面的話),這個文件可能是一個網絡連接,F(xiàn)IFO,管道,終端,磁盤上的文件或者什么其它的東西。Unix 中所有的東西就是文件!所以,你想和Internet上別的程序通訊的時候,你將要使用到文件描述符。你必須理解剛才的話。現(xiàn)在你腦海中或許冒出這樣的念頭:“那么我從哪里得到網絡通訊的文件描述符呢?”,這個問題無論如何我都要回答:你利用系統(tǒng)調用 socket(),它返回套接字描述符 (socket descriptor),然后你再通過它來進行send() 和 recv()調用。“但是...”,你可能有很大的疑惑,“如果它是個文件描述符,那么為什 么不用一般調用read()和write()來進行套接字通訊?”簡單的答案是:“你可以使用!”。詳細的答案是:“你可以,但是使用send()和recv()讓你更好的控制數(shù)據(jù)傳輸?!贝嬖谶@樣一個情況:在我們的世界上,有很多種套接字。有DARPA Internet 地址 (Internet 套接字),本地節(jié)點的路徑名 (Unix套接字),CCITT X.25地址 (你可以將X.25 套接字完全忽略)。也許在你的Unix 機器上還有其它的。我們在這里只講第一種:Internet 套接字。 
-------------------------------------------------------------------------------- 
Internet 套接字的兩種類型 
  什么意思?有兩種類型的Internet 套接字?是的。不,我在撒謊。其實還有很多,但是我可不想嚇著你。我們這里只講兩種。除了這些, 我打算另外介紹的 "Raw Sockets" 也是非常強大的,很值得查閱。 
那么這兩種類型是什么呢?一種是"Stream Sockets"(流格式),另外一種是"Datagram Sockets"(數(shù)據(jù)包格式)。我們以后談到它們的時候也會用到 "SOCK_STREAM" 和 "SOCK_DGRAM"。數(shù)據(jù)報套接字有時也叫“無連接套接字”(如果你確實要連接的時候可以用connect()。) 流式套接字是可靠的雙向通訊的數(shù)據(jù)流。如果你向套接字按順序輸出“1,2”,那么它們將按順序“1,2”到達另一邊。它們是無錯誤的傳遞的,有自己的錯誤控制,在此不討論。 
有什么在使用流式套接字?你可能聽說過 telnet,不是嗎?它就使用流式套接字。你需要你所輸入的字符按順序到達,不是嗎?同樣,WWW瀏覽器使用的 HTTP 協(xié)議也使用它們來下載頁面。實際上,當你通過端口80 telnet 到一個 WWW 站點,然后輸入 “GET pagename” 的時候,你也可以得到 HTML 的內容。為什么流式套接字可以達到高質量的數(shù)據(jù)傳輸?這是因為它使用了“傳輸控制協(xié)議 (The Transmission Control Protocol)”,也叫 “TCP” (請參考 RFC-793 獲得詳細資料。)TCP 控制你的數(shù)據(jù)按順序到達并且沒有錯 
誤。你也許聽到 “TCP” 是因為聽到過 “TCP/IP”。這里的 IP 是指“Internet 協(xié)議”(請參考 RFC-791。) IP 只是處理 Internet 路由而已。 
那么數(shù)據(jù)報套接字呢?為什么它叫無連接呢?為什么它是不可靠的呢?有這樣的一些事實:如果你發(fā)送一個數(shù)據(jù)報,它可能會到達,它可能次序顛倒了。如果它到達,那么在這個包的內部是無錯誤的。數(shù)據(jù)報也使用 IP 作路由,但是它不使用 TCP。它使用“用戶數(shù)據(jù)報協(xié)議 (User Datagram Protocol)”,也叫 “UDP” (請參考 RFC-768。) 
為什么它們是無連接的呢?主要是因為它并不象流式套接字那樣維持一個連接。你只要建立一個包,構造一個有目標信息的IP 頭,然后發(fā)出去。無需連接。它們通常使用于傳輸包-包信息。簡單的應用程序有:tftp, bootp等等。 
你也許會想:“假如數(shù)據(jù)丟失了這些程序如何正常工作?”我的朋友,每個程序在 UDP 上有自己的協(xié)議。例如,tftp 協(xié)議每發(fā)出的一個被接受到包,收到者必須發(fā)回一個包來說“我收到了!” (一個“命令正確應答”也叫“ACK” 包)。如果在一定時間內(例如5秒),發(fā)送方沒有收到應答,它將重新發(fā)送,直到得到 ACK。這一ACK過程在實現(xiàn) SOCK_DGRAM 應用程序的時候非常重要。 
-------------------------------------------------------------------------------- 
網絡理論 
  既然我剛才提到了協(xié)議層,那么現(xiàn)在是討論網絡究竟如何工作和一些 關于 SOCK_DGRAM 包是如何建立的例子。當然,你也可以跳過這一段, 如果你認為已經熟悉的話。 
現(xiàn)在是學習數(shù)據(jù)封裝 (Data Encapsulation) 的時候了!它非常非常重 要。它重要性重要到你在網絡課程學(圖1:數(shù)據(jù)封裝)習中無論如何也得也得掌握它。主要 的內容是:一個包,先是被第一個協(xié)議(在這里是TFTP )在它的報頭(也許 是報尾)包裝(“封裝”),然后,整個數(shù)據(jù)(包括 TFTP 頭)被另外一個協(xié)議 (在這里是 UDP )封裝,然后下一個( IP ),一直重復下去,直到硬件(物理) 層( 這里是以太網 )。 
當另外一臺機器接收到包,硬件先剝去以太網頭,內核剝去IP和UDP 頭,TFTP程序再剝去TFTP頭,最后得到數(shù)據(jù)?,F(xiàn)在我們終于講到聲名狼藉的網絡分層模型 (Layered Network Model)。這種網絡模型在描述網絡系統(tǒng)上相對其它模型有很多優(yōu)點。例如, 你可以寫一個套接字程序而不用關心數(shù)據(jù)的物理傳輸(串行口,以太網,連 接單元接口 (AUI) 還是其它介質),因為底層的程序會為你處理它們。實際 的網絡硬件和拓撲對于程序員來說是透明的。 
不說其它廢話了,我現(xiàn)在列出整個層次模型。如果你要參加網絡考試, 可一定要記?。?
應用層 (Application) 
表示層 (Presentation) 
會話層 (Session) 
傳輸層(Transport) 
網絡層(Network) 
數(shù)據(jù)鏈路層(Data Link) 
物理層(Physical) 
物理層是硬件(串口,以太網等等)。應用層是和硬件層相隔最遠的--它 是用戶和網絡交互的地方。 
這個模型如此通用,如果你想,你可以把它作為修車指南。把它對應 到 Unix,結果是: 
應用層(Application Layer) (telnet, ftp,等等) 
傳輸層(Host-to-Host Transport Layer) (TCP, UDP) 
Internet層(Internet Layer) (IP和路由) 
網絡訪問層 (Network Access Layer) (網絡層,數(shù)據(jù)鏈路層和物理層) 
現(xiàn)在,你可能看到這些層次如何協(xié)調來封裝原始的數(shù)據(jù)了。 
看看建立一個簡單的數(shù)據(jù)包有多少工作?哎呀,你將不得不使用 "cat" 來建立數(shù)據(jù)包頭!這僅僅是個玩笑。對于流式套接字你要作的是 send() 發(fā) 送數(shù)據(jù)。對于數(shù)據(jù)報式套接字,你按照你選擇的方式封裝數(shù)據(jù)然后使用 sendto()。內核將為你建立傳輸層和 Internet 層,硬件完成網絡訪問層。 這就是現(xiàn)代科技。 
現(xiàn)在結束我們的網絡理論速成班。哦,忘記告訴你關于路由的事情了。 但是我不準備談它,如果你真的關心,那么參考 IP RFC。 
-------------------------------------------------------------------------------- 
結構體 
  終于談到編程了。在這章,我將談到被套接字用到的各種數(shù)據(jù)類型。 因為它們中的一些內容很重要了。 
首先是簡單的一個:socket描述符。它是下面的類型: 
int 
僅僅是一個常見的 int。 
從現(xiàn)在起,事情變得不可思議了,而你所需做的就是繼續(xù)看下去。注 意這樣的事實:有兩種字節(jié)排列順序:重要的字節(jié) (有時叫 "octet",即八 位位組) 在前面,或者不重要的字節(jié)在前面。前一種叫“網絡字節(jié)順序 (Network Byte Order)”。有些機器在內部是按照這個順序儲存數(shù)據(jù),而另外 一些則不然。當我說某數(shù)據(jù)必須按照 NBO 順序,那么你要調用函數(shù)(例如 htons() )來將它從本機字節(jié)順序 (Host Byte Order) 轉換過來。如果我沒有 提到 NBO, 那么就讓它保持本機字節(jié)順序。 
我的第一個結構(在這個技術手冊TM中)--struct sockaddr.。這個結構 為許多類型的套接字儲存套接字地址信息: 
struct sockaddr { 
   unsigned short sa_family; /* 地址家族, AF_xxx */ 
   char sa_data[14]; /*14字節(jié)協(xié)議地址*/ 
   }; 
sa_family 能夠是各種各樣的類型,但是在這篇文章中都是 "AF_INET"。 sa_data包含套接字中的目標地址和端口信息。這好像有點 不明智。 
為了處理struct sockaddr,程序員創(chuàng)造了一個并列的結構: struct sockaddr_in ("in" 代表 "Internet"。) 
struct sockaddr_in { 
   short int sin_family; /* 通信類型 */ 
   unsigned short int sin_port; /* 端口 */ 
   struct in_addr sin_addr; /* Internet 地址 */ 
   unsigned char sin_zero[8]; /* 與sockaddr結構的長度相同*/ 
   }; 
用這個數(shù)據(jù)結構可以輕松處理套接字地址的基本元素。注意 sin_zero (它被加入到這個結構,并且長度和 struct sockaddr 一樣) 應該使用函數(shù) bzero() 或 memset() 來全部置零。 同時,這一重要的字節(jié),一個指向 sockaddr_in結構體的指針也可以被指向結構體sockaddr并且代替它。這 樣的話即使 socket() 想要的是 struct sockaddr *,你仍然可以使用 struct sockaddr_in,并且在最后轉換。同時,注意 sin_family 和 struct sockaddr 中的 sa_family 一致并能夠設置為 "AF_INET"。最后,sin_port和 sin_addr 必須是網絡字節(jié)順序 (Network Byte Order)! 
你也許會反對道:"但是,怎么讓整個數(shù)據(jù)結構 struct in_addr sin_addr 按照網絡字節(jié)順序呢?" 要知道這個問題的答案,我們就要仔細的看一看這 個數(shù)據(jù)結構: struct in_addr, 有這樣一個聯(lián)合 (unions): 
/* Internet 地址 (一個與歷史有關的結構) */ 
   struct in_addr { 
   unsigned long s_addr; 
   }; 
它曾經是個最壞的聯(lián)合,但是現(xiàn)在那些日子過去了。如果你聲明 "ina" 是數(shù)據(jù)結構 struct sockaddr_in 的實例,那么 "ina.sin_addr.s_addr" 就儲 存4字節(jié)的 IP 地址(使用網絡字節(jié)順序)。如果你不幸的系統(tǒng)使用的還是恐 怖的聯(lián)合 struct in_addr ,你還是可以放心4字節(jié)的 IP 地址并且和上面 我說的一樣(這是因為使用了“#define”。) 
-------------------------------------------------------------------------------- 
本機轉換 
  我們現(xiàn)在到了新的章節(jié)。我們曾經講了很多網絡到本機字節(jié)順序的轉 換,現(xiàn)在可以實踐了! 
你能夠轉換兩種類型: short (兩個字節(jié))和 long (四個字節(jié))。這個函 數(shù)對于變量類型 unsigned 也適用。假設你想將 short 從本機字節(jié)順序轉 換為網絡字節(jié)順序。用 "h" 表示 "本機 (host)",接著是 "to",然后用 "n" 表 示 "網絡 (network)",最后用 "s" 表示 "short": h-to-n-s, 或者 htons() ("Host to Network Short")。 
太簡單了... 
如果不是太傻的話,你一定想到了由"n","h","s",和 "l"形成的正確 組合,例如這里肯定沒有stolh() ("Short to Long Host") 函數(shù),不僅在這里 沒有,所有場合都沒有。但是這里有: 
htons()--"Host to Network Short" 
  htonl()--"Host to Network Long" 
  ntohs()--"Network to Host Short" 
  ntohl()--"Network to Host Long" 
現(xiàn)在,你可能想你已經知道它們了。你也可能想:“如果我想改變 char 的順序要怎么辦呢?” 但是你也許馬上就想到,“用不著考慮的”。你也許 會想到:我的 68000 機器已經使用了網絡字節(jié)順序,我沒有必要去調用 htonl() 轉換 IP 地址。你可能是對的,但是當你移植你的程序到別的機器 上的時候,你的程序將失敗??梢浦残?!這里是 Unix 世界!記?。涸谀?將數(shù)據(jù)放到網絡上的時候,確信它們是網絡字節(jié)順序的。 
最后一點:為什么在數(shù)據(jù)結構 struct sockaddr_in 中, sin_addr 和 sin_port 需要轉換為網絡字節(jié)順序,而sin_family 需不需要呢? 答案是: sin_addr 和 sin_port 分別封裝在包的 IP 和 UDP 層。因此,它們必須要 是網絡字節(jié)順序。但是 sin_family 域只是被內核 (kernel) 使用來決定在數(shù) 據(jù)結構中包含什么類型的地址,所以它必須是本機字節(jié)順序。同時, sin_family 沒有發(fā)送到網絡上,它們可以是本機字節(jié)順序。 
-------------------------------------------------------------------------------- 
IP 地址和如何處理它們 
現(xiàn)在我們很幸運,因為我們有很多的函數(shù)來方便地操作 IP 地址。沒有 必要用手工計算它們,也沒有必要用"<<"操作來儲存成長整字型。 首先,假設你已經有了一個sockaddr_in結構體ina,你有一個IP地 址"132.241.5.10"要儲存在其中,你就要用到函數(shù)inet_addr(),將IP地址從 點數(shù)格式轉換成無符號長整型。使用方法如下: 
ina.sin_addr.s_addr = inet_addr("132.241.5.10"); 
注意,inet_addr()返回的地址已經是網絡字節(jié)格式,所以你無需再調用 函數(shù)htonl()。 
我們現(xiàn)在發(fā)現(xiàn)上面的代碼片斷不是十分完整的,因為它沒有錯誤檢查。 顯而易見,當inet_addr()發(fā)生錯誤時返回-1。記住這些二進制數(shù)字?(無符 號數(shù))-1僅僅和IP地址255.255.255.255相符合!這可是廣播地址!大錯特 錯!記住要先進行錯誤檢查。 
好了,現(xiàn)在你可以將IP地址轉換成長整型了。有沒有其相反的方法呢? 它可以將一個in_addr結構體輸出成點數(shù)格式?這樣的話,你就要用到函數(shù) inet_ntoa()("ntoa"的含義是"network to ascii"),就像這樣: 
printf("%s",inet_ntoa(ina.sin_addr)); 
它將輸出IP地址。需要注意的是inet_ntoa()將結構體in-addr作為一 個參數(shù),不是長整形。同樣需要注意的是它返回的是一個指向一個字符的 指針。它是一個由inet_ntoa()控制的靜態(tài)的固定的指針,所以每次調用 inet_ntoa(),它就將覆蓋上次調用時所得的IP地址。例如: 
char *a1, *a2; 
. 
. 
a1 = inet_ntoa(ina1.sin_addr); /* 這是198.92.129.1 */ 
a2 = inet_ntoa(ina2.sin_addr); /* 這是132.241.5.10 */ 
printf("address 1: %s\n",a1); 
printf("address 2: %s\n",a2); 
輸出如下: 
address 1: 132.241.5.10 
address 2: 132.241.5.10 
假如你需要保存這個IP地址,使用strcopy()函數(shù)來指向你自己的字符 指針。 
上面就是關于這個主題的介紹。稍后,你將學習將一個類 似"wintehouse.gov"的字符串轉換成它所對應的IP地址(查閱域名服務,稍 后)。 
-------------------------------------------------------------------------------- 
socket()函數(shù) 
我想我不能再不提這個了-下面我將討論一下socket()系統(tǒng)調用。 
下面是詳細介紹: 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产免费一区二区三区香蕉| 亚洲一区二区三区四区在线观看 | 国产成人免费在线观看| 色欲综合视频天天天| 精品久久久久久久久久久院品网| 国产精品入口麻豆原神| 久久97超碰国产精品超碰| 一本色道久久综合精品竹菊| 精品国产污污免费网站入口 | 欧美精品久久一区| 专区另类欧美日韩| 国产91清纯白嫩初高中在线观看 | 欧美图区在线视频| 亚洲视频每日更新| 成人av网址在线观看| 久久久久久免费| 国产一区高清在线| 日韩写真欧美这视频| 午夜精品123| 在线观看日韩高清av| 亚洲免费在线视频| av一本久道久久综合久久鬼色| 亚洲精品在线免费播放| 久久99精品国产.久久久久久| 欧美日韩一区二区欧美激情 | 欧美喷潮久久久xxxxx| 亚洲伊人伊色伊影伊综合网| 成人精品视频一区二区三区尤物| 国产天堂亚洲国产碰碰| 国产精品91xxx| 中文av一区特黄| 99麻豆久久久国产精品免费优播| 国产精品亲子乱子伦xxxx裸| 成人性色生活片免费看爆迷你毛片| 久久免费国产精品| 粗大黑人巨茎大战欧美成人| 中文字幕第一区二区| 99久久er热在这里只有精品66| 中文字幕日韩一区二区| 91网站在线播放| 亚洲国产欧美另类丝袜| 51精品视频一区二区三区| 天天爽夜夜爽夜夜爽精品视频| 欧美精品免费视频| 国产真实乱对白精彩久久| 欧美国产激情一区二区三区蜜月| 成人免费的视频| 亚洲一区二区免费视频| 日韩视频在线你懂得| 国产一区二区中文字幕| 亚洲欧洲日产国产综合网| 色噜噜久久综合| 免费在线观看视频一区| 日本一区二区成人| 欧美日韩视频在线第一区| 韩国在线一区二区| 亚洲三级在线免费观看| 欧美高清精品3d| 国产成人高清视频| 亚洲国产一区在线观看| 精品噜噜噜噜久久久久久久久试看| 国产成人av一区| 性感美女极品91精品| 国产午夜精品福利| 欧美日韩在线一区二区| 国产一区二区三区观看| 亚洲人成网站在线| 欧美xxxxxxxx| 91成人免费在线视频| 国内外成人在线| 亚洲精品国产精华液| 久久婷婷色综合| 欧美日韩免费视频| 成人av午夜影院| 国产在线视频一区二区| 一区二区日韩电影| 国产欧美一区视频| 欧美一级免费大片| 99re在线精品| 国产成人自拍高清视频在线免费播放| 亚洲国产视频网站| 国产精品入口麻豆九色| 精品福利av导航| 欧美精品色综合| 在线视频一区二区免费| 成a人片亚洲日本久久| 激情图区综合网| 天天综合色天天综合色h| 亚洲免费在线电影| 久久亚洲捆绑美女| 日韩一区二区影院| 欧美精品三级日韩久久| 91国产视频在线观看| 成人app网站| 国产成人h网站| 国产精品一级黄| 韩国精品在线观看| 久久精品国产一区二区三| 亚洲不卡av一区二区三区| 亚洲另类色综合网站| 国产精品素人一区二区| 久久免费视频一区| 26uuu亚洲综合色| 欧美电影免费观看高清完整版在线 | 狠狠网亚洲精品| 麻豆成人久久精品二区三区红 | 成人av免费在线观看| 国产一区二区精品久久91| 玖玖九九国产精品| 毛片一区二区三区| 蜜桃视频第一区免费观看| 视频一区在线视频| 免费人成黄页网站在线一区二区 | 亚洲国产日韩a在线播放| 亚洲激情男女视频| 一区二区三区在线观看欧美| 国产精品传媒视频| 亚洲另类在线视频| 亚洲成人自拍网| 免费成人深夜小野草| 免费日本视频一区| 国产一区二区调教| 福利一区二区在线| 91伊人久久大香线蕉| 色综合一个色综合亚洲| 欧美在线短视频| 8v天堂国产在线一区二区| 精品剧情v国产在线观看在线| 日韩免费看的电影| 中文字幕免费不卡| 亚洲免费大片在线观看| 亚洲6080在线| 国产在线国偷精品免费看| 成人va在线观看| 欧洲一区二区三区在线| 91精品国产免费久久综合| 久久视频一区二区| 亚洲情趣在线观看| 日韩不卡一区二区| 国产精品一级片在线观看| 在线一区二区三区| 欧美xxxxx牲另类人与| 中文字幕一区二区在线观看 | 欧美一级日韩不卡播放免费| 久久久美女毛片| 亚洲精品欧美专区| 激情综合网激情| 日本韩国一区二区三区视频| 日韩一区二区电影在线| 成人欧美一区二区三区视频网页| 亚洲va欧美va人人爽| 国产成人自拍网| 日韩一区二区在线观看视频| 国产精品久久久久影院色老大| 午夜精品久久一牛影视| 福利电影一区二区| 欧美一区二区三区播放老司机| 国产清纯在线一区二区www| 视频一区二区三区在线| 国产91精品一区二区麻豆亚洲| 欧美在线观看18| 中文字幕免费不卡在线| 美腿丝袜亚洲三区| 欧美专区在线观看一区| 国产欧美一区二区精品婷婷| 视频在线观看一区| 91香蕉视频污在线| 国产三级欧美三级| 日韩av一级电影| 欧美三级一区二区| 亚洲欧美国产高清| 国产成人精品影视| 精品乱人伦小说| 日韩成人dvd| 欧美日韩成人综合天天影院| 亚洲日本中文字幕区| 国产xxx精品视频大全| 日韩欧美视频在线| 午夜精品福利一区二区蜜股av| 91网站在线播放| 国产精品久久福利| 国产91丝袜在线观看| 久久久久国产一区二区三区四区| 天天亚洲美女在线视频| 欧美亚一区二区| 夜夜嗨av一区二区三区网页| 床上的激情91.| 中文字幕精品一区二区精品绿巨人 | 中文字幕中文乱码欧美一区二区| 久久精品国产亚洲a| 在线播放日韩导航| 三级久久三级久久久| 91成人免费在线视频| 依依成人综合视频| 一本色道久久综合狠狠躁的推荐| 中文字幕一区二区三区色视频| 国产成人精品一区二区三区网站观看| 久久亚洲一级片| 高清国产一区二区三区| 中文字幕一区二区三区四区|