黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁技術文章
文章詳情頁

PHP的Socket函數參考

瀏覽:24日期:2024-02-20 17:27:13

這些Socket函數直接跟互聯網的協議進行發送信息。相對于fopensock的流來講,他們操作在一個比較底層的級別。通常,他們都是對C 函數進行封裝,并且名稱都類似。如果你有使用C進行socket編程的經驗,那么使用這些函數將是非常熟練的。我們這里不討論特別詳細的socket編程。使用這些函數能夠解決高層級別函數所不能解決的難題。使用這些函數能夠實現類似fopen的功能,你也許有很多方法來實現socket的功能,比如在PHP中使用CLI(Command-line Interface)來實現的Internet守護進程。resource socket_accept(resource socket)在你的腳本服務器端中,使用socket_accept接受一個進入的連接。你必須首先產生一個socket,綁定它到一個名字,并且設置它監聽一個端口。在塊模式中,socket_accept將產生一個唯一接受后的連接。在非塊模式中,它沒有建立連接則返回false。另外,當你有了一個新的socket資源后就能夠進行讀寫操作。下面我們將示范一個簡單的回顯服務器端。它運行在CLI(命令行)下面,它在12345端口等待客戶端的連接。socket_accept<?php set_time_limit(0); //create the socket if(($socket = socket_create(AF_INET, SOCK_STREAM, 0)) < 0){ print('Couldn't create socket: ' . socket_strerror(socket_last_error()) . 'n'); } //bind it to the given address and port if(($error = socket_bind($socket, gethostbyname($_SERVER['HOSTNAME']), 12345)) < 0){ print('Couldn't bind socket: ' . socket_strerror(socket_last_error()) . 'n'); } if(($error = socket_listen($socket, 5)) < 0){ print('Couldn't list on socket: ' . socket_strerror(socket_last_error()) . 'n'); } while(TRUE){ //wait for connection if(($accept = socket_accept($socket)) < 0){ print('Error while reading: ' . socket_strerror($message) . 'n'); break; } //send welcome message socket_write($accept, 'Connection acceptedn'); print(date('Y-m-d H:i:s') . ' STATUS: Connection acceptedn'); ob_flush(); while(TRUE){ //read line from client if(FALSE === ($line = socket_read($accept, 1024))){ print('Couldn't read from socket: ' . socket_strerror(socket_last_error()) . 'n'); break 2; } if(!@socket_write($accept, 'ECHO: $line')){ print(date('Y-m-d H:i:s') . ' STATUS: Connection interruptedn'); break; } print(date('Y-m-d H:i:s') . ' READ: $line'); ob_flush(); } socket_close($accept); }?>

bool socket_bind(resource socket, string address, integer port)這個socket_bind()把一個socket資源綁定在一個地址上。這個socket必須由socket_create()函數返回的一個資源。這個地址必須是一個IP地址或者是一個保存Unix socket的路徑。如果是運行在Internet上的socket,你還必須提供一個端口。socket_clear_error(resource socket)這個函數能夠清除制定socket的錯誤,如果沒有指定參數,那么將清除所有socket的錯誤。socket_close(resource socket)socket_close函數關閉一個socket并且清除該socket所占用的內存資源。boolean socket_connect(resource socket, string address, integer port)這個函數創建一個客戶端到一個端口或者socket的連接。你必須提供一個由socket_create產生的socket。這個address參數必須到一個socket的路徑或者是一個IP地址。如果是后者,還必須跟一個數字的端口號。下面例子演示了使用UDP協議的連接到游戲服務器然后獲取信息的過程。socket_connect<?php //create UDP socket if(($socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP)) < 0){ print('Couldn't create socket: ' . socket_strerror(socket_last_error()) . 'n'); } //timeout after 5 seconds socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec'=>5,'usec'=>0)); //connect to the RtCW master server if(!socket_connect($socket, 'wolfmaster.idsoftware.com', 27950)){ print('Couldn't connect: ' . socket_strerror(socket_last_error()) . 'n'); } //send request for servers socket_write($socket, 'xFFxFFxFFxFFgetserversx00'); //get servers $server = array(); while(FALSE !== ($line = @socket_read($socket, 4096))){ //parse data for($i=22; ($i+5) < strlen($line); $i += 7){ $ip = ord(substr($line, $i+1, 1)) . '.' . ord(substr($line, $i+2, 1)) . '.' . ord(substr($line, $i+3, 1)) . '.' . ord(substr($line, $i+4, 1)); $port = (ord(substr($line, $i+5, 1)) * 256) + ord(substr($line, $i+6, 1)); $server[] = array('ip'=>$ip, 'port'=>$port); } } print('<h1>' . count($server) . ' Servers</h1>n'); //loop over servers, getting status foreach($server as $s){ print('<h1>{$s['ip']}:{$s['port']}</h1>n'); //connect to RtCW server if(!socket_connect($socket, $s['ip'], $s['port'])){ print('<p>n' . socket_strerror(socket_last_error()) . 'n</p>n'); continue; } //send request for status socket_write($socket, 'xFFxFFxFFxFFgetstatusx00'); //get status from server if(FALSE === ($line = @socket_read($socket, 1024))){ print('<p>n' . socket_strerror(socket_last_error()) . 'n</p>n'); continue; } $part = explode('n', $line); //settings are in second line separated by backslashes $setting = explode('', $part[1]); print('<h2>Configuration</h2>n'); print('<p>n'); for($s=1; $s < count($setting); $s += 2){ print('tt{$setting[$s]} = {$setting[$s+1]}<br>n'); } print('</p>n'); print('<h2>Players</h2>n'); $lastPlayer = count($part) - 1; for($p=2; $p < $lastPlayer; $p++){ $player = explode(' ', $part[$p]); print('{$player[2]} Score={$player[0]} ' . 'Ping={$player[1]}<br>n'); } print('</p>n'); ob_flush(); } print('</table>n'); socket_close($socket);?>resource socket_create(integer family, integer socket_type, integer protocol)socket_create初始化一個socket的結構。第一個參數是一個protocol family,或者域。你必須使用AF_INET來指定一個Internet連接,或者使用AF_UNIX來指定一個Unix socket連接。第二個參數是一個socket的類型,你可以從下面的表中選擇。一般情況下,使用SOCK_STREAM來使用TCP協議,UDP協議使用SOCK_DGRAM。第三個參數指定為一個協議。使用SOL_TCP或SOL_UDP來分別對應TCP和UDP協議。還有一個選擇是你能夠使用 getprotobyname函數來處理。Socket 類型常量 描述SOCK_DGRAM 自動尋址數據包socketSOCK_RAW RAW協議接口SOCK_RDM 可靠交換消息SOCK_SEQPACKET 順序數據包socketSOCK_STREAM 流socketresource socket_create_listen(integer port, integer backlog)使用socket_create_listen是一種比socket_create更簡單的產生一個socket進行監聽。這個產生的socket將監聽指定的端口,后面可選的參數backlog是設置允許最大的連接數。boolean socket_create_pair(integer family, integer socket_type, integer protocol, array handles)socket_create_pair函數產生一對socket連接。首先前三個參數是對一個socket_create的描述,這個handles參數是一個包含兩個socket資源的數組。該函數是對C里面socketpair函數的封裝。socket_create_pair<?php if(!socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $socket)){ print('Couldn't make sockets!n'); exit(); } $child = pcntl_fork(); if($child == -1){ print('Couldn't fork!n'); exit(); } elseif($child > 0){ //parent socket_close($socket[0]); print('Parent: waiting for messagen'); $message = socket_read($socket[1], 1024, PHP_NORMAL_READ); print('Parent: got message--$messagen'); socket_write($socket[1], 'Hello, Child Process!n'); pcntl_waitpid($child, $status); }else{ //child socket_close($socket[1]); socket_write($socket[0], 'Hello, Parent Process!n'); print('Child: waiting for messagen'); $message = socket_read($socket[0], 1024, PHP_NORMAL_READ); print('Child: got message--$messagen'); exit(0); }?>value socket_get_option(resource socket, integer level, integer option)socket_get_option函數返回一個下表中所列的一個添加值,你必須提供一個由socket_create產生的socket資源和一個等級。這個獲取的socket級別,可以使用SOL_SOCKET來確定這個級別參數。另外,使用協議,比如象SOL_TCP來表示一個TCP協議。這些選項可能是由socket_set_option設置的。socket_get_options<?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); print('SO_BROADCAST: ' . socket_get_option($socket, SOL_SOCKET, SO_BROADCAST) . '<br>n'); print('SO_DEBUG: ' . socket_get_option($socket, SOL_SOCKET, SO_DEBUG) . '<br>n'); print('SO_DONTROUTE: ' . socket_get_option($socket, SOL_SOCKET, SO_DONTROUTE) . '<br>n'); print('SO_ERROR: ' . socket_get_option($socket, SOL_SOCKET, SO_ERROR) . '<br>n'); print('SO_KEEPALIVE: ' . socket_get_option($socket, SOL_SOCKET, SO_KEEPALIVE) . '<br>n'); print('SO_LINGER: ' . print_r(socket_get_option($socket, SOL_SOCKET, SO_LINGER), TRUE) . '<br>n'); print('SO_OOBINLINE: ' . socket_get_option($socket, SOL_SOCKET, SO_OOBINLINE) . '<br>n'); print('SO_RCVBUF: ' . socket_get_option($socket, SOL_SOCKET, SO_RCVBUF) . '<br>n'); print('SO_RCVLOWAT: ' . socket_get_option($socket, SOL_SOCKET, SO_RCVLOWAT) . '<br>n'); print('SO_RCVTIMEO: ' . print_r(socket_get_option($socket, SOL_SOCKET, SO_RCVTIMEO), TRUE) . '<br>n'); print('SO_REUSEADDR: ' . socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR) . '<br>n'); print('SO_SNDBUF: ' . socket_get_option($socket, SOL_SOCKET, SO_SNDBUF) . '<br>n'); print('SO_SNDLOWAT: ' . socket_get_option($socket, SOL_SOCKET, SO_SNDLOWAT) . '<br>n'); print('SO_SNDTIMEO: ' . print_r(socket_get_option($socket, SOL_SOCKET, SO_SNDTIMEO), TRUE) . '<br>n'); print('SO_TYPE: ' . socket_get_option($socket, SOL_SOCKET, SO_TYPE) . '<br>n');?>

Socket選項表選項 描述SO_BROADCAST 允許自動尋址的socket發送和接受廣播包SO_DEBUG 打開socket調試功能,只有root才有權限打開該選項SO_DONTROUTE 不接受路由包通過網關SO_ERROR 獲取并且清除最后一次的socket錯誤,這個選項也許不用設置SO_KEEPALIVE 打開保持激活狀態的消息SO_LINGER Socket_colse和socket_shutdown的中止消息發送超時,該選項使用一個數組,包括l_onoff和l_linger兩個鍵。SO_OOBINLINE 把數據直接插入到接受緩沖SO_RCVBUF 限制接受緩沖的最大字節SO_RCVLOWAT 延遲通過接受一個最小的數據SO_RCVTIMEO 延遲報告一個接受超時報告,使用數組的兩個鍵:sec和usecSO_REUSEADDR 允許重新使用本地地址SO_SNDBUF 限制發送緩沖的最大字節SO_SNDLOWAT 延遲發送數據到這個協議當接受一個最小的字節SO_SNDTIMEO 延遲報告超時錯誤,當發送發送通過一個時間。該選項使用數組的鍵值:sec和usecSO_TYPE 獲取socket的類型,該選項可能不用設置

boolean socket_getpeername(resource socket, string address, integer port)socket_getpeername從指定的一個連接中獲取地址和端口。如果連接為Unix socket,那么將返回文件系統的路徑。boolean socket_getsockname(resource socket, string address, integer port)socket_getsockname放置一個名字到socket中,并且加上address和port參數。失敗返回false。(下面的socket_iovec_* 函數不太了解,不敢亂翻譯,保留原文)boolean socket_iovec_add(resource iovector, integer length)The socket_iovec_add unction adds an I/O vector to the scatter/gather array.resource socket_iovec_alloc(integer count, …)The socket_iovec_alloc function returns a resource for handling a collection of I/O vectors. The first argument specifies the number of vectors. Following arguments specify the length of each vector.boolean socket_iovec_delete(resource iovector, integer position)The socket_iovec_delete function removes the I/O vector at the given position.string socket_iovec_fetch(resource iovector, integer position)The socket_iovec_fetch function returns the value of the specified vector in the I/O vector resource.boolean socket_iovec_free(resource iovector)The socket_iovec_free function frees the memory used for an I/O vector resource.boolean socket_iovec_set(resource iovector, integer position, string value)The socket_iovec_set sets the value of I/O vector at the given position.integer socket_last_error(resource socket)socket_last_error函數返回操作中的任何socket函數產生的最后錯誤。你也許在上面函數中設置了socket資源的 socket選項在指定的連接上。下面的表列出了返回的錯誤代碼,你同樣可以使用soclet_strerror函數來獲取詳細的錯誤。使用 socket_clear_error函數清除socket的錯誤。Socket錯誤代碼表常量描述SOCKET_E2BIG 參數列表太長SOCKET_EACCES沒有許可權限SOCKET_EADDRINUSE地址已經被使用SOCKET_EADDRNOTAVAIL不能解析請求的地址SOCKET_EADV廣播(廣告)錯誤SOCKET_EAFNOSUPPORTAddress family不支持的協議SOCKET_EAGAIN資源暫時不能獲得SOCKET_EALREADY 操作已經在執行SOCKET_EBADE 無效的交換SOCKET_EBADF錯誤的文件描述符SOCKET_EBADFD文件描述符錯誤的狀態SOCKET_EBADMSG錯誤的消息SOCKET_EBADR無效的請求描述SOCKET_EBADRQC 無效的請求代碼SOCKET_EBADSLT無效的操作位置SOCKET_EBUSY驅動或資源繁忙SOCKET_ECHRNG 信道號碼超出范圍SOCKET_ECOMM發送通訊錯誤SOCKET_ECONNABORTED軟件原因導致通行中斷SOCKET_ECONNREFUSED連接被拒絕SOCKET_ECONNRESET連接被相同的socket重置SOCKET_EDESTADDRREQ必須需要目標地址SOCKET_EDQUOT 超出磁盤配額SOCKET_EEXIST 文件已存在SOCKET_EFAULT 錯誤的地址SOCKET_EHOSTDOWN主機已關閉SOCKET_EHOSTUNREACH沒有路由到主機SOCKET_EIDRM表示ID被刪除SOCKET_EINPROGRESS操作正在執行SOCKET_EINTR系統調用被阻止SOCKET_EINVAL無效的參數SOCKET_EIO輸入/ 輸出錯誤SOCKET_EISCONN傳輸終端已經連接SOCKET_EISDIR 是一個目錄SOCKET_EISNAM是一個指定的類型文件SOCKET_EL2HLT級別2已中止SOCKET_EL2NSYNC級別2不同步SOCKET_EL3HLT級別3已中止SOCKET_EL3RST級別3被重置SOCKET_ELNRNG 連接號超出范圍SOCKET_ELOOP太多級別的符號連接SOCKET_EMEDIUMTYPE錯誤的媒介類型(中間類型)SOCKET_EMFILE太多打開的文件SOCKET_EMLINK 太多的連接SOCKET_EMSGSIZE消息太長SOCKET_EMULTIHOP嘗試次數太多SOCKET_ENAMETOOLONG文件名太長SOCKET_ENETDOWN; 網絡已關閉SOCKET_ENETRESET; 網絡中斷,連接被重置SOCKET_ENETUNREACH網絡不可達SOCKET_ENFILE系統中太多打開的文件SOCKET_ENOANO 沒有正極SOCKET_ENOBUFS沒有可用的緩存空間SOCKET_ENOCSI沒有可用的CSI結構SOCKET_ENODATA沒有可用的數據SOCKET_ENODEV 沒有這樣的驅動SOCKET_ENOENT沒有這樣的文件或目錄SOCKET_ENOLCK沒有可用的記錄鎖SOCKET_ENOLINK已經有的服務的連接SOCKET_ENOMEDIUM沒有媒介被找到SOCKET_ENOMEM 不能分配內存SOCKET_ENOMSG沒有指定的消息類型SOCKET_ENONET 設備不在網絡上SOCKET_ENOPROTOOPT協議不可用SOCKET_ENOSPC 沒有空間在驅動器SOCKET_ENOSR超出的流資源SOCKET_ENOSTR 驅動不是一個流SOCKET_ENOSYS函數沒有執行SOCKET_ENOTBLK塊驅動是必須的SOCKET_ENOTCONN傳輸終端沒有連接SOCKET_ENOTDIR沒有一個目錄SOCKET_ENOTEMPTY目錄為空SOCKET_ENOTSOCK Socket操作在一個非socket上SOCKET_ENOTTY不相符的IO控制器SOCKET_ENOTUNIQ在網絡上名字不是唯一的SOCKET_ENXIO 沒有這樣的驅動或地址SOCKET_EOPNOTSUPP 操作不支持SOCKET_EPERM操作不允許SOCKET_EPFNOSUPPORT Protocol family不支持SOCKET_EPIPE失敗的管道SOCKET_EPROTO 協議錯誤SOCKET_EPROTONOSUPPORT協議不支持SOCKET_EPROTOTYPESocket上協議錯誤的類型SOCKET_EREMCHG遠程地址已改變SOCKET_EREMOTE對象是遠程的SOCKET_EREMOTEIO遠程I/O錯誤SOCKET_ERESTART 中斷的系統調用將要重新開始SOCKET_EROFS文件系統為只讀SOCKET_ESHUTDOWN.傳輸端點中斷不能發送SOCKET_ESOCKTNOSUPPORT Socket類型不支持SOCKET_ESPIPE不合法的檢索SOCKET_ESTRPIPE流管道錯誤SOCKET_ETIME定時器到時SOCKET_ETIMEDOUT 連接超時SOCKET_ETOOMANYREFS太多連接無法結合SOCKET_EUNATCH無法附加協議驅動SOCKET_EUSERS太多用戶SOCKET_EWOULDBLOCK 資源暫時無法獲得SOCKET_EXDEV無效的交叉驅動連接SOCKET_EXFULL 交換已滿

boolean socket_listen(resource socket, integer backlog)這個socket_listen函數等待從客戶端過來的連接,backlog參數設置允許最多等待連接的隊列數。string socket_read(resource socket, integer length, integer type)socket_read函數從特定的socket中讀取指定的字節,如果錯誤返回false。缺省下,是采用二進制安全的讀取模式。你可以外在的設置type參數為PHP_BINARY_READ來改變讀取模式。你也可以把type設置為PHP_NORMAL_READ。boolean socket_readv(resource socket, resource iovector)socket_readv函數把讀取的數據插入到iovector資源中。integer socket_recv(resource socket, string buffer, integer length, integer flags)socket_recv函數讀取數據插入到緩沖中。Length參數設置最多讀取的字節數,flag參數可以使用MSG_OOB或MSG_PEEK。函數返回讀取的字節數。integer socket_recvfrom(resource socket, string buffer, integer length, string host, integer port)socket_frcvfrom函數讀取數據插入到緩存中。Length參數設置獲取最多允許接受的字節數。設置flags參數可以為MSG_OOB 或 MSG_PEEK。PHP設置主機和端口參數適當的值能夠獲取從主機發出的數據。boolean socket_recvmsg(resource socket, resource iovector, array control, integer length, integer flags, string host, integer port)socket_recvmsg函數從socket中讀取數據并且插入到一個I/O向量資源中。PHP設置control參數是一個具有三個元素的聯合數組:cmsg_level, cmsg_type, 和 cmsg_data。Length參數是一個附加在數據中的關于獲取數據的長度參數。Flags參數是設置允許值和返回值。在寫的時間,PHP無法執行所有的輸出常量。PHP設置host和port參數適當的值是為了獲取從遠程主機中發送的數據。(Socket_slect函數沒有翻譯,因為怕詞不達意)integer socket_select(array read, array write, array exception, integer timeout_seconds, integer timeout_microseconds)The socket_select function waits for changes to sockets. PHP watches the sockets given in the read array for new data coming in. PHP watches the streams given in the write array for being ready to accept more data. PHP watches the streams given in the exception argument for errors. If the number of seconds specified in the timeout_seconds argument passes, the function returns. Use the optional timeout_microseconds argument to specify a timeout less than 1 second.The socket_select function returns the number of sockets that changed or FALSE if an error occurred. If the call timed out, this function returns zero. It also modifies the given arrays so that they include only those sockets that changed.If you have no sockets of a particular type to watch, you may pass an empty array or a variable set to NULL.integer socket_send(resource socket, string buffer, integer length, integer flags)socket_send函數把寫數據到緩沖中,然后插入到連接中。你必須指定一個緩沖最大可寫字節數。你同樣可以設置flags參數為空,或者為下面聯合常量中的一個:MSG_DONTROUTE和 MSG_OOB。函數結束返回已經寫的字節數,失敗返回false。boolean socket_sendmsg(resource socket, resource iovector, integer flags, string address, integer port)socket_sendmsg嘗試發送數據到一個socket。它適合無連接的socket。Iovector參數是一個通過 socket_iovec_alloc函數產生的資源。你必須指定flags參數為:NULL, MSG_DONTROUTE, MSG_OOB,或者是兩個聯合常量。你應當指定一個地址和一個Internet請求的端口。Socket_sendmsg函數發送數據返回true,但是不能保證數據一定到達。integer socket_sendto(resource socket, string buffer, integer length, integer flags, string address, integer port)socket_sendto函數嘗試寫數據到buffer緩沖中,并且發送給一個socket。它適合大部分無連接的socket。你必須指定 flags為:NULL,MSG_DONTROUTE,MSG_OOB或者是一個兩個聯合常量。你還應但指定地址和一個請求的端口。Socket_sendto函數數據發送出去返回true,但是不能保證數據一定到達。

boolean socket_set_block(resource socket)socket_set_block函數設置socket插入到一個塊模式中,這是缺省模式。在塊模式中,I/O操作正對于一個完成的請求。boolean socket_set_nonblock(resource socket)socket_set_nonblock函數設置socket插入到意個非塊模式中。在非塊模式中,I/O操作馬上返回,即使沒有數據。boolean socket_set_option(resource socket, integer level, integer option, integer value)socket_set_option函數給socket設置一個選項。Level參數設置一個標志級別的常量。有效的值包括:SOL_SOCKET, SOL_TCP和SOL_UDP。Option參數必須匹配文章上面的Socket選項表中的常量。boolean socket_shutdown(resource socket, integer how)socket_shutdown函數關閉一個關于I/O的socket。設置how為0則中止接受數據,設置為1則停止發送數據,設置為2則中止二者操作。string socket_strerror(integer error)socket_strerror函數返回一個錯誤號的詳細錯誤信息。integer socket_write(resource socket, string buffer, integer length)socket_write函數寫數據到buffer緩沖中然后輸出到socket中。你可以指定length參數來指定緩沖的最大字節數。這個函數通常情況下比socket_send更方便。boolean socket_writev(resource socket, resource iovector)socket_writev函數通過I/O向量寫數據到一個socket中。

標簽: PHP
上一條:PHP字符串函數庫下一條:PHP監聽Socket
主站蜘蛛池模板: 一二三国产777avav | 北条麻妃一区二区三区在线视频 | 亚洲国产精品视频一区 | 雨宫琴音av一区在线播放 | 国产精品人人做人人爽 | 狠狠色狠狠色88综合日日91 | 国产高跟黑色丝袜在线 | 日韩一二区 | 少妇2做爰交换朴银狐 | 天堂色av | 国产又色又爽又刺激在线播放 | 亚洲精品456在线播放狼人 | www.国产成人 | 夜夜躁狠狠躁日日躁麻豆 | 99国产超薄肉色丝袜交足 | 蜜臀av夜夜澡人人爽人人 | 亚洲欧洲精品mv免费看 | 亚洲激情图片区 | 日日婷婷夜日日天干 | 小早川怜子avhd肉厚一区 | avtt男人天堂| 日韩在线天堂 | 国产男女无遮挡猛进猛出 | 国产露脸无套对白在线播放 | 狂野欧美性猛交免费视频 | 91国内精品久久久 | av在线播放观看 | 久久综合久久自在自线精品自 | 国产五月婷婷 | 国产一区二区在线观看视频 | 色婷婷av一区| 青草青草视频 | 97久久精品一区二区三区观看 | 亚洲免费在线观看视频 | 国产夜夜嗨 | 国产精品久久久午夜夜伦鲁鲁 | 日本高清视频网站 | 91亚洲精品丁香在线观看 | 久久99精品久久久久久琪琪 | 午夜精品极品粉嫩国产尤物 | 日本人又黄又爽又色的图片 | 成人特级片 | 97久久精品午夜一区二区 | 久久久久久欧美精品色一二三四 | 尤物永久网站 | 一级片免费 | 欧美在线视频一区二区三区 | 91在线视频播放 | 欧美日韩影院 | 国产一区二区三区四区三区四 | 久久伊人草 | a级黄色片免费看 | 成人自拍偷拍 | 免费视频在线观看1 | 国产精品色综合一区二区三区 | 古川伊织在线播放 | 国产成人精品a视频一区www | 美女天天操 | 日韩放荡少妇无码视频 | 欧美三区 | 春色校园综合人妻av | 亚洲综合p | 日韩在线视频精品 | 久久久性高潮 | 欧美三级午夜理伦三级 | 美女网站免费福利视频 | 夜夜操网| 亚洲国产影院av久久久久 | 极品美女销魂一区二区三区 | 亚洲性视频在线 | 国产真实交换夫妇视频 | 少妇高潮太爽了中文字幕 | 中文有码无码人妻在线 | mm131尤物让人欲罢不能日本 | 91成人免费版 | 性高潮免费视频 | 久久网一区 | 伊人成年网站综合网 | 99久久无色码中文字幕人妻 | 人人狠狠综合久久亚洲婷婷 | 国产传媒毛片精品视频第一次 | 欧美日韩欧美日韩在线观看视频 | 久久久久免费精品国产小说色大师 | 亚洲情综合五月天 | 深夜福利一区 | 日韩不卡视频在线观看 | 亚洲成在人网站无码天堂 | 亚洲乱码国产一区三区 | 日韩三级黄色毛片 | 国产精品免费看 | 噜噜噜精品欧美成人 | 蜜臀av免费一区二区三区 | jazzjazz国产精品麻豆 | 亚洲熟妇少妇任你躁在线观看无码 | 亚洲一区二区黄色 | 又大又长粗又爽又黄少妇毛片 | 永久免费未满蜜桃 | 粉嫩av一区二区三区天美传媒 | 国产奶水涨喷在线播放 | 无遮挡边摸边吃奶边做视频 | 98自拍视频 | 91久久婷婷国产一区二区三区 | 国产九一视频在线观看 | 91色在线视频 | 国产精品伊人久久 | 夜夜躁狠狠躁日日躁aab苏桃 | 1024精品一区二区三区日韩 | 香蕉免费一区二区三区 | 国产婷婷色一区二区三区四区 | 精品熟女碰碰人人a久久 | 成人日韩在线观看 | 国产麻豆影视 | 国产一区欧美一区 | 中文字幕色站 | 香蕉久久久久久 | 国产欧美一区二区视频 | 中文字幕av专区dvd | v片在线观看 | 亚洲精品一区二区久 | 最新国产三级 | 成人免费久久网 | 成年人在线网站 | 一区二区三区视频免费在线观看 | 国产无套内射久久久国产 | 国产综合视频在线 | 69久久夜色精品国产69蝌蚪网 | 女教师淫辱の教室蜜av臀 | 一区二视频 | 午夜小视频免费在线观看 | 黄色网址av | 亚洲第一免费看片 | 一级黄色a毛片 | 成人免费淫片视频软件 | 欧美日韩在线视频一区二区 | 精品久久久久久一区二区 | 国产av久久久久精东av | 亚洲男人影院 | 特级a老妇做爰全过程 | 欧美成人一区二区三区 | 极品国产在线 | 天天操天天操天天操天天操 | 国产精品无码mv在线观看 | 性高湖久久久久久久久 | 免费成人结看片 | 奶大交一乱一乱一视一频 | 李丽珍裸体午夜理伦片 | 日韩毛片在线 | 国产精品亚洲成在人线 | 欧美孕妇姓交大片 | 黄色一级片视频 | 在线播放成人av | 精品国产乱码91久久久久久网站 | 九九自拍视频 | 亚洲情区| 欧美日韩国产一区二区三区不卡 | 国产91精品高清一区二区三区 | 97视频在线观看免费 | 日本变态折磨凌虐bdsm在线 | 国产福利91精品 | 深夜福利影院 | 特大黑人巨交吊性xx | 日韩一级在线视频 | 中文字幕丝袜诱惑 | 精品免费在线 | 亚洲综合欧美色五月俺也去 | 偷拍激情视频一区二区三区 | 无码中文av有码中文av | 高清国产精品人妻一区二区 | 亚洲一区二区三区国产精华液 | 久久久99久久久国产自输拍 | 劲爆欧美第一页 | 日产精品99久久久久久 | 欧洲乱码伦视频免费 | 高潮毛片又色又爽免费 | 欧美成人吸奶水做爰 | 久久99精品国产麻豆蜜芽 | 无码专区人妻系列日韩精品 | 国产伦精品一区二区三区88av | 久久久久女人 | 色婷婷视频 | 鲁鲁鲁爽爽爽在线视频观看 | 天天鲁啊鲁在线看 | 91精品国产综合久久福利 | 久久影 | 50岁熟妇大白屁股真爽 | 久久不见久久见免费影院视频 | 校园春色中文字幕 | 日韩av不卡一区 | 黄色片网站免费观看 | 成人在线观看一区二区 | 日韩欧美资源 | 夜夜躁狠狠躁日日躁202小说 | 午夜久久久 | 播播开心激情网 | 日本在线免费视频 | 日韩精品99久久久久中文字幕 | 日本黄网站| 超碰aⅴ人人做人人爽欧美 狠狠亚洲婷婷综合色香五月 | 巨胸狂喷奶水视频www网站免费 | 拔擦拔擦8x国产精品免费 | 国产高清精品一区二区三区 | 国产精品欧美一区二区三区 | 国产午夜精品久久精品电影 | 性高潮影院 | 91视频你懂的 | 乱人伦xxxx国语对白 | 极品白嫩的小少妇avove | 日韩毛片在线观看 | 7777精品久久久大香线蕉小说 | 国产三级精品三级 | 尤物视频网站在线观看 | 欧美老妇牲交videos | 国产精品人人爱一区二区白浆 | 亚洲第一网站在线观看 | 国产黄色的视频 | 老妇肥熟凸凹丰满刺激小说 | 国产精品无码久久久久成人影院 | 毛片av在线| 91精品推荐 | 久久久精品久久久久久96 | 区一区二区三区中文字幕 | 日韩中文在线观看 | 波多野结衣国产在线 | 国产精品久久人 | 日本免费高清一本视频 | a天堂最新版中文在线地址 a天堂最新地址 | 亚洲成人视屏 | 黑人大荫道bbwbbb高潮潮喷 | 日日日操 | 九九热中文字幕 | 色婷婷在线影院 | 夜夜骑夜夜 | 亚洲精品久久久久久久久久 | 高辣h文乱乳h文男男双性视频 | 后入到高潮免费观看 | 最新国产在线视频 | 日本三级全黄少妇三2020 | 国产亚洲精品久 | 亚洲国产一区二 | 18禁无遮挡免费视频网站 | 67194熟妇在线观看线路1 | 激情国产一区二区三区四区小说 | 狠狠艹狠狠干 | 一级做a爰全过程免费视频毛片 | 五月天在线播放 | 国产亚洲精品美女久久久 | 毛片网在线观看 | 精品国产一区二区三区四区精华 | 夜夜爽夜夜叫夜夜高潮漏水 | 免费黄色激情视频 | 欧美一级夜夜爽 | 国精产品一区一区三区mba下载 | 久久人人爽人人片 | 成人动漫视频在线 | a级在线免费观看 | 婷婷九月丁香 | 伊人精品在线 | 18禁免费无码无遮挡不卡网站 | 天天艹天天射 | 九九99九九精彩46 | 久久久久久久性潮 | 欧美吻胸吃奶大尺度 | 永久免费的啪啪网站免费观看 | 国产视频色 | 日本一级片在线播放 | 久久丫精品系列 | h在线免费观看 | av片在线免费看 | 亚洲日日骚 | 国产在线视频网 | 亚洲日韩成人 | 日韩一区二区在线观看视频 | 7m视频成人精品分类 | 日韩精品久久久久久久电影蜜臀 | 国产色视频一区二区三区qq号 | 免费一区二区三区四区 | 国产在线高清 | 果冻传媒mv免费播放在线观看 | 高h肉辣民工文 | 精品欧美一区二区久久久伦 | 免费日本黄色网址 | 夜夜嗨av一区二区三区 | 国产成人久久av免费看 | 淫人网| 欧洲美女x8x8免费视频 | 亚洲宅男av | 视频在线观看网站免费 | 国产尤物 | 乌克兰少妇videos高潮 | 久久91精品国产91久久久 | 在线观看黄色小视频 | 久久人妻公开中文字幕 | 国产3p露脸普通话对白 | 国产精品婷婷久久爽一下 | 欧美成人吸奶水做爰 | 亚洲va中文在线播放免费 | 热久久这里只有精品 | 寡妇亲子伦一区二区三区四区 | 成人性色生活片免费看l | 三级性视频 | 亚洲在线播放 | 色综合色天天久久婷婷基地 | 久久大综合 | 国产精品午夜一区 | 欧美无专区 | 国产免费黄色小视频 | 成人国产精品齐天大性 | 欧美在线观看视频一区 | 国产精品久久久久久久不卡 | 欧美wwwxxxx| 午夜av亚洲翘臀国产精网 | 欧美在线不卡视频 | 久久久无码精品国产一区 | 欧美大屁股xxxx高跟欧美黑人 | 在线精品一区二区三区 | 日韩一级不卡 | 国产普通话bbwbbwbbw | 日韩欧美色图 | 五月深爱婷婷 | 国产女同疯狂作爱系列 | 好吊精品| 精品91视频 | 久久国产影院 | 久久99国产精一区二区三区 | 欧美性xxxx图片 | 一级日韩片| 91久久国产露脸精品国产闺蜜 | 少妇毛茸茸bbw高清 少妇免费毛片久久久久久久久 | 精品国产偷窥一区二区 | 在线免费视频 | 人妻久久久一区二区三区 | 乱色熟女综合一区二区三区 | 好吊妞视频这里只有精品 | 日韩国产人妻一区二区三区 | 51精品国产人成在线观看 | 午夜国产一区二区三区四区 | 久青草无码视频在线播放 | 亚洲天堂第一页 | 日韩欧美在线第一页 | 国产精品毛片大码女人 | a4yy午夜| 91免费毛片 | 1区2区3区视频 | 亚洲精品一区中文字幕 | 午夜免费学生在线观看av | 丰满饥渴的少妇hd | 亚洲 欧美 激情 小说 另类 | 巨大乳女人做爰视频在线看 | 精品视频一区二区三区四区 | 欧洲成人综合 | 国产裸体写真av一区二区 | 午夜爽爽爽视频 | 91粉色视频| 亚洲女人18毛片水真多 | 乱人伦中文视频在线 | 91超薄肉色丝袜交足高跟凉鞋 | 中文在线字幕观 | 亚洲精品美女 | 96国产精品| 欧美成人r级一区二区三区 欧美成人tv | 久久婷婷精品一区二区三区日本 | a级片久久| 国产亚洲精品久久久久久无几年桃 | 欧美激情精品久久 | 亚洲欧美成人在线 | 影音先锋国产 | 亚洲三级精品 | 亚洲s码欧洲m码吹潮 | 色婷婷影院 | 国产黄在线观看免费观看不卡 | 免费看的一级视频 | 国产无遮挡又黄又爽免费视频 | 男人靠女人免费视频网站 | a级一级黄色片 | 欧美一级鲁丝片 | 亚洲精品毛片一区二区三区 | 天天都色| 国产精品呻吟久久av凹凸 | av一级大片 | 国产麻花豆剧传媒精品mv在线 | 久久久久免费精品国产小说色大师 | 7777精品久久久久久 | 国产伦精品免编号公布 | 狠狠干一区 | 中文婷婷| 国产午夜手机精彩视频 | 97资源共享在线视频 | 91爱看| 捆绑japanhdxxxxvideos| 欧美日本三级少妇三级久久 | 中文有码亚洲制服av片 | 椎名空在线观看 | 91精品国产综合久久久久久软件 | 成年人黄视频 | 亚洲精品字幕 | 丰满少妇猛烈进人免费看高潮 | 国产999精品 | 欧美成人黄色片 | 欧美三级不卡在线观看 | 成人av网站在线 | 国产经典盗摄91区x99av | 国产综合视频一区二区三区 | 91网址在线播放 | 亚洲欧美激情国产综合久久久 | 日本在线视频www鲁啊鲁 | 成人在线观看h | 黄色成人在线视频 | 无遮挡国产 | 日韩专区欧美专区 | 狼人伊人干 | 韩国女同性做爰三级 | 国产免费又爽又色又粗视频 | av免费观看久久 | 最近中文字幕在线播放中 | 日日摸天天做天天添天天欢 | 日本日皮视频 | 翔田千里一区二区 | 国产永久免费观看 | 日日噜噜噜夜夜爽爽狠狠小说 | 文中字幕一区二区三区视频播放 | 国产人妖在线 | 国产在线观看码高清视频 | 乌克兰粉嫩xxx极品hd | 国产精品美女高潮视频 | 天天在线观看 | 欧美大片va欧美在线播放 | av在线高清观看 | 欧美亚洲精品在线 | 97人人模人人爽人人少妇 | 熟女视频一区二区在线观看 | 欧美18精品久久久无码午夜福利 | 和嫩模做爰在线播放 | www.国产麻豆| 97久久草草超级碰碰碰 | 日韩av中文字幕在线播放 | 久久国产精品久久久久久 | 亚洲精品国产一区二区精华液 | 国内色视频 | 日日摸日日踫夜夜爽无码 | 国产成人av在线 | 国产狂做受xxxxx高潮 | 卡一卡二在线视频 | 农民人伦一区二区三区剧情简介 | 欧美一区二区日韩国产 | 国产欧美亚洲精品第一区软件 | 亚洲精品一区二区三区蜜臀 | 午夜免费一区 | 中文字幕永久在线观看 | 狠狠综合久久av一区二区 | 成人极品| 国产系列第一页 | 色欲久久久天天天综合网 | 日韩精品免费一区二区夜夜嗨 | 天天综合入口 | 中文天堂国产最新 | 亚洲一区二区三区四区av | 日本少妇xxxxx | 狂野欧美性猛交xxxx巴西 | 福利视频免费观看 | 国产视频精品在线 | 成人性生交大片免费卡看 | 日韩亚洲欧美在线 | 亚洲午夜久久久影院 | 亚洲国产成人久久综合碰 | 国产成人免费9x9x | 国产精品美女久久久久av超清 | 天堂男人av | 黄色三级免费网站 | 中文字幕在线播放一区 | 精品亚洲韩国一区二区三区 | 草草浮力地址线路①屁屁影院 | 三级三级三级三级 | 97国产爽爽爽久久久 | 精品国产青草久久久久福利 | 精品国产成人av在线免 | 国产精品无码一本二本三本色 | 巨大乳女人做爰视频在线看 | 痴汉电车在线播放 | a级在线免费观看 | 无码中文av有码中文a | 国产一级淫片免费 | 久久国产乱子伦免费精品 | 国产av无码专区亚洲a∨毛片 | 三级国产三级在线 | 日韩精美视频 | av一区不卡| 日韩伦理一区二区 | 国产黄色小视频在线观看 | 亚洲 欧美 影音先锋 | 男女性动态激烈动全过程 | 丰满岳妇伦在线播放 | 免费观看日批视频 | 日韩aⅴ在线观看 | 黄色片一区 | 国产在线视频福利 | 关晓彤三级在线播放 | 丁香花在线影院观看在线播放 | 欧美va天堂在线电影 | 成人在线手机视频 | 国产av无码专区亚洲精品 | 久久无码中文字幕久久无码app | 日韩国产欧美一区 | 国产成人免费观看 | 一本精品中文字幕在线 | 久久久午夜影院 | 男人的天堂免费av | 中文字幕啪啪 | 性xxxxx大片免费视频 | 伊人久久大香线蕉av一区 | 亚洲精品午夜久久久久久久灵蛇爱 | 红杏亚洲影院一区二区三区 | 涩涩的视频在线观看 | 欧美大片在线播放 | 免费中文视频 | 欧美激情综合色综合啪啪五月 | 实拍澡堂美女洗澡av | 老司机精品视频网 | 日本午夜小视频 | 国产搞逼视频 | 免费黄色三级 | 亚洲天堂免费在线观看视频 | 丰满岳跪趴高撅肥臀尤物在线观看 | 国产免费播放 | 啪啪综合网 | 精品无人码麻豆乱码1区2区 | 夜夜高潮天天爽欧美国产亚洲一区 | 欧美黄色大全 | 久久亚洲一区二区三区四区五区 | 伊人久久大香线蕉综合影院首页 | 成年人在线免费观看视频网站 | 国产成人精品久久亚洲高清不卡 | 一本免费视频 | 中文天堂在线视频 | www豆花福利视频 | xxxx96| 91精品啪在线观看国产 | 国产69精品久久久久9999 | 精品欧美久久 | 国产一大二大不卡专区 | 国模妙妙超大尺度啪啪人体 | 波多野结衣a级片 | 少妇啪啪av一区二区三区 | 国产原创91 | 国产高清在线观看 | 国产寡妇亲子伦一区二区三区四区 | 中国少妇内射xxxhd免费 | 日韩av网站在线观看 | 亚洲乱码国产乱码精品精小说 | 精品国产一区二区三区四区 | 成人性生交视频免费观看 | 少妇厨房愉情理9仑片视频 纯爱无遮挡h肉动漫在线播放 | 17c在线观看视频 | 一亚洲乱亚洲乱妇23p | 123毛片 | 97影院手机版 | 欧美日韩一区二区区别是什么 | 欧美午夜一区二区 | 欧美v亚洲 | 自拍偷拍激情小说 | 成人做爰9片免费视频 | 国产专区一区二区 | 国产夫妻性爱视频 | 日韩卡一卡二 | 欧美精品福利视频 | 超碰2023| 91精品一区| 2018天天干天天操 | 玉米视频成人免费看 | 国产精品无码不卡一区二区三区 | 三级做爰在线观看视频 | 成人黄色免费视频 | 精品不卡一区二区 | 国语自产少妇精品视频 | 欧美大尺度做爰啪啪床戏明星 | 少妇全光淫片bbw | 久久日韩国产精品免费 | h文日记高h污肉1v1 | 无码国产精品一区二区免费式芒果 | 久久精品一区二区免费播放 | 依依色综合一道本 | a√毛片| 99riav国产精品视频 | 五十岁熟韵母乱视国产 | 女同互慰高潮呻吟免费播放 | 久久久免费精品re6 在线精品无码字幕无码av | 国产69精品久久久久久人妻精品 | 久久久精品国产99久久精品麻追 | 伊人久久国产精品 | 一二三四日本高清社区5 | 久久国产劲暴∨内射新川 | 久久金品| 国产女主播户外勾搭野战 | 一个色综合久久 | 欧美国产日产一区二区 | 天堂网www网在线最新版 | 亚洲一久久 | 国产第113页 | 国产日视频 | 91丨porny丨尤物 | 欧美成人猛片aaaaaaa | 欧美日韩视频免费观看 | 激情床戏视频女人叫国语 | 小视频成人 | 偷拍中国夫妇高潮视频 | 深夜福利啪啪片 | 欧美日韩亚洲在线观看 | 国产美女久久 | 91精品91久久久中77777老牛 | 亚洲a级女人内射毛片 | 亚洲男人天堂视频 | 亚洲热av | 91国语| 91夜色视频 | 超碰在线观看免费版 | 日韩女女同性aa女同 |