久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

用PHP的Socket建立自己的聊天室服務(wù)器

瀏覽:2日期:2024-02-21 13:02:42

<?PHP/*** patServer* PHP socket server base class* Events that can be handled:** onStart** onConnect** onConnectionRefused** onClose** onShutdown** onReceiveData** @version 1.1* @authorStephan Schmidt <schst@php-tools.de>* @package patServer*/class patServer{/*** information about the project* @var array $systemVars*/var $systemVars= array(

'appName'=> 'patServer', 'appVersion'=> '1.1', 'author'=> array('Stephan Schmidt <schst@php-tools.de>', ) );

/*** port to listen* @var integer$port*/ var $port= 10000;

/*** domain to bind to* @var string $domain*/ var $domain= 'localhost';

/*** maximum amount of clients* @var integer $maxClients*/ var $maxClients = -1;

/*** buffer size for socket_read* @var integer $readBufferSize*/ var $readBufferSize= 128;

/*** end character for socket_read* @var integer $readEndCharacter*/ var $readEndCharacter = 'n';

/*** maximum of backlog in queue* @var integer $maxQueue*/ var $maxQueue = 500;

/*** debug mode* @var boolean $debug*/ var $debug= true;

/*** debug mode* @var string $debugMode*/ var $debugMode = 'text';

/*** debug destination (filename or stdout)* @var string $debugDest*/ var $debugDest = 'stdout';

/*** empty array, used for socket_select* @var array $null*/ var $null= array();

/*** all file descriptors are stored here* @var array $clientFD*/ var $clientFD = array();

/*** needed to store client information* @var array $clientInfo*/ var $clientInfo = array();

/*** needed to store server information* @var array $serverInfo*/ var $serverInfo = array();

/*** amount of clients* @var integer$clients*/ var $clients = 0;

/*** create a new socket server** @access public* @param string$domaindomain to bind to* @param integer$portport to listen to*/function patServer( $domain = 'localhost', $port = 10000 ){ $this->domain = $domain; $this->port= $port;

$this->serverInfo['domain'] = $domain; $this->serverInfo['port'] = $port; $this->serverInfo['servername'];;= $this->systemVars['appName']; $this->serverInfo['serverversion'] = $this->systemVars['appVersion'];

set_time_limit( 0 );}

/*** set maximum amount of simultaneous connections** @access public* @param int $maxClients*/function setMaxClients( $maxClients ){ $this->maxClients = $maxClients;}

/*** set debug mode** @access public* @param mixed $debug [text|htmlfalse]* @param string $dest destination of debug message (stdout to output or filename if log should be written)*/function setDebugMode( $debug, $dest = 'stdout' ){ if( $debug === false ){ $this->debug = false; return true; }

$this->debug= true; $this->debugMode = $debug; $this->debugDest = $dest;}

/*** start the server** @access public* @param int $maxClients*/function start(){ $this->initFD = @socket_create( AF_INET, SOCK_STREAM, 0 ); if( !$this->initFD ) die( 'patServer: Could not create socket.' );

// adress may be reused socket_setopt( $this->initFD, SOL_SOCKET, SO_REUSEADDR, 1 );

// bind the socket if(!@socket_bind( $this->initFD, $this->domain, $this->port ) ){ @socket_close( $this->initFD ); die( 'patServer: Could not bind socket to '.$this->domain.' on port '.$this->port.' ( '.$this->getLastSocketError( $this->initFd ).' ).' ); }

// listen on selected port if(!@socket_listen( $this->initFD, $this->maxQueue ) ) die( 'patServer: Could not listen ( '.$this->getLastSocketError( $this->initFd ).' ).' );

$this->sendDebugMessage( 'Listening on port '.$this->port.'. Server started at '.date( 'H:i:s', time() ) );

// this allows the shutdown function to check whether the server is already shut down $GLOBALS['_patServerStatus'] = 'running'; // this ensures that the server will be sutdown correctly register_shutdown_function( array( $this, 'shutdown' ) );

if( method_exists( $this, 'onStart' ) ) $this->onStart();

$this->serverInfo['started'] = time(); $this->serverInfo['status']= 'running';

while( true ){ $readFDs = array(); array_push( $readFDs, $this->initFD );

// fetch all clients that are awaiting connections for( $i = 0; $i < count( $this->clientFD ); $i++ ) if( isset( $this->clientFD[$i] ) ) array_push( $readFDs, $this->clientFD[$i] );

// block and wait for data or new connection $ready = @socket_select( $readFDs, $this->null, $this->null, NULL );

if( $ready === false ){ $this->sendDebugMessage( 'socket_select failed.' ); $this->shutdown(); }

// check for new connection if( in_array( $this->initFD, $readFDs ) ){ $newClient = $this->acceptConnection( $this->initFD );

// check for maximum amount of connections if( $this->maxClients > 0 ){ if( $this->clients > $this->maxClients ){ $this->sendDebugMessage( 'Too many connections.' );

if( method_exists( $this, 'onConnectionRefused' ) ) $this->onConnectionRefused( $newClient );

$this->closeConnection( $newClient ); } }

if( --$ready <= 0 ) continue; }

// check all clients for incoming data for( $i = 0; $i < count( $this->clientFD ); $i++ ){ if( !isset( $this->clientFD[$i] ) ) continue;

if( in_array( $this->clientFD[$i], $readFDs ) ){ $data = $this->readFromSocket( $i );

// empty data => connection was closed if( !$data ){ $this->sendDebugMessage( 'Connection closed by peer' ); $this->closeConnection( $i ); }else{ $this->sendDebugMessage( 'Received '.trim( $data ).' from '.$i );

if( method_exists( $this, 'onReceiveData' ) ) $this->onReceiveData( $i, $data ); } } } }}

/*** read from a socket** @access private* @param integer $clientId internal id of the client to read from* @return string $datadata that was read*/function readFromSocket( $clientId ){ // start with empty string $data= '';

// read data from socket while( $buf = socket_read( $this->clientFD[$clientId], $this->readBufferSize ) ){ $data .= $buf;

$endString = substr( $buf, - strlen( $this->readEndCharacter ) ); if( $endString == $this->readEndCharacter ) break; if( $buf == NULL ) break; }

if( $buf === false ) $this->sendDebugMessage( 'Could not read from client '.$clientId.' ( '.$this->getLastSocketError( $this->clientFD[$clientId] ).' ).' );

return $data;}

/*** accept a new connection** @access public* @param resource &$socket socket that received the new connection* @return int;$clientID internal ID of the client*/function acceptConnection( &$socket ){ for( $i = 0 ; $i <= count( $this->clientFD ); $i++ ){ if( !isset( $this->clientFD[$i] ) || $this->clientFD[$i] == NULL ){ $this->clientFD[$i] = socket_accept( $socket ); socket_setopt( $this->clientFD[$i], SOL_SOCKET, SO_REUSEADDR, 1 ); $peer_host = ''; $peer_port = ''; socket_getpeername( $this->clientFD[$i], $peer_host, $peer_port ); $this->clientInfo[$i] = array( 'host'=> $peer_host, 'port'=> $peer_port, 'connectOn' => time() ); $this->clients++;

$this->sendDebugMessage( 'New connection ( '.$i.' ) from '.$peer_host.' on port '.$peer_port );

if( method_exists( $this, 'onConnect' ) ) $this->onConnect( $i ); return $i; } }}

/*** check, whether a client is still connected** @access public* @param integer $id client id* @return boolean $connected true if client is connected, false otherwise*/function isConnected( $id ){ if( !isset( $this->clientFD[$id] ) ) return false; return true;}

/*** close connection to a client** @access public* @param int $clientID internal ID of the client*/function closeConnection( $id ){ if( !isset( $this->clientFD[$id] ) ) return false;

if( method_exists( $this, 'onClose' ) ) $this->onClose( $id );

$this->sendDebugMessage( 'Closed connection ( '.$id.' ) from '.$this->clientInfo[$id]['host'].' on port '.$this->clientInfo[$id]['port'] );

@socket_close( $this->clientFD[$id] ); $this->clientFD[$id] = NULL; unset( $this->clientInfo[$id] ); $this->clients--;}

/*** shutdown server** @access public*/function shutDown(){ if( $GLOBALS['_patServerStatus'] != 'running' ) exit; $GLOBALS['_patServerStatus'] = 'stopped';

if( method_exists( $this, 'onShutdown' ) ) $this->onShutdown();

$maxFD = count( $this->clientFD ); for( $i = 0; $i < $maxFD; $i++ ) $this->closeConnection( $i );

@socket_close( $this->initFD );

$this->sendDebugMessage( 'Shutdown server.' ); exit;}

/*** get current amount of clients** @access public* @return int $clients amount of clients*/function getClients(){ return $this->clients;}

/*** send data to a client** @access public* @param int$clientId ID of the client* @param string $datadata to send* @param boolean $debugData flag to indicate whether data that is written to socket should also be sent as debug message*/function sendData( $clientId, $data, $debugData = true ){ if( !isset( $this->clientFD[$clientId] ) || $this->clientFD[$clientId] == NULL ) return false;

if( $debugData ) $this->sendDebugMessage( 'sending: '' . $data . '' to: $clientId' );

if(!@socket_write( $this->clientFD[$clientId], $data ) ) $this->sendDebugMessage( 'Could not write ''.$data.'' client '.$clientId.' ( '.$this->getLastSocketError( $this->clientFD[$clientId] ).' ).' );}

/*** send data to all clients** @access public* @param string $datadata to send* @param array $exclude client ids to exclude*/function broadcastData( $data, $exclude = array(), $debugData = true ){ if( !empty( $exclude ) && !is_array( $exclude ) ) $exclude = array( $exclude );

for( $i = 0; $i < count( $this->clientFD ); $i++ ){ if( isset( $this->clientFD[$i] ) && $this->clientFD[$i] != NULL && !in_array( $i, $exclude ) ){ if( $debugData ) $this->sendDebugMessage( 'sending: '' . $data . '' to: $i' );

if(!@socket_write( $this->clientFD[$i], $data ) ) $this->sendDebugMessage( 'Could not write ''.$data.'' client '.$i.' ( '.$this->getLastSocketError( $this->clientFD[$i] ).' ).' ); } }}

/*** get current information about a client** @access public* @param int$clientId ID of the client* @return array $infoinformation about the client*/function getClientInfo( $clientId ){ if( !isset( $this->clientFD[$clientId] ) || $this->clientFD[$clientId] == NULL ) return false; return $this->clientInfo[$clientId];}

/*** send a debug message** @access private* @param string $msg message to debug*/function sendDebugMessage( $msg ){ if( !$this->debug ) return false;

$msg = date( 'Y-m-d H:i:s', time() ) . ' ' . $msg;

switch( $this->debugMode ){ case 'text': $msg = $msg.'n'; break; case 'html': $msg = htmlspecialchars( $msg ) . '<br />n'; break; }

if( $this->debugDest == 'stdout' || empty( $this->debugDest ) ){ echo $msg; flush(); return true; }

error_log( $msg, 3, $this->debugDest ); return true;}

/*** return string for last socket error** @access public* @return string $error last error*/function getLastSocketError( &$fd ){ $lastError = socket_last_error( $fd ); return 'msg: ' . socket_strerror( $lastError ) . ' / Code: '.$lastError;}function onReceiveData($ip,$data){ $this->broadcastData( $data,array(), true );}}$patServer = new patServer();$patServer->start();?>

標(biāo)簽: PHP
主站蜘蛛池模板: 在线激情视频 | 依人成人综合网 | 亚洲一区二区三区视频 | 国产一区二区三区四区在线观看 | 欧美全黄| 精品久久久久久久久久久久 | 91超碰caoporn97人人 | 久久青青视频 | 中文字幕在线视频免费播放 | 国产午夜精品福利 | 中文字幕在线观看一区二区三区 | 久久精品中文 | 日韩性精品 | 欧美日韩成人在线播放 | 91久久精品国产91久久 | 日本黄色毛片 | 国产欧美久久久久久 | 中文字幕一区二区三区精彩视频 | a久久久 | av午夜电影 | 亚洲欧美国产精品专区久久 | 久久综合久久久 | 久久精品中文 | 国产视频一区二区三区四区 | 国产亚洲欧美一区二区三区 | 中文字幕亚洲一区二区三区 | av在线成人| 蜜臀精品久久久久久蜜臀 | 久久国产一区二区三区 | 国产一二三区在线播放 | 久久99视频这里只有精品 | 国产欧美精品一区二区三区四区 | 91在线精品秘密一区二区 | 综合一区| 欧美色v| 欧美日本在线观看 | 龙珠z在线观看 | 国产成人福利在线观看 | 男人视频网站 | 国产高清在线 | 国产精品久久久久精 | 狠狠躁夜夜躁人人爽视频 | 日韩一区二区三区在线 | 日日操天天操 | 夏同学福利网 | 国产最好的av国产大片 | 黄色小视频在线观看 | 成人午夜精品久久久久久久3d | 伊人色综合久久天天五月婷 | 日韩精品一区二区在线观看 | 欧美一区二区三区精品 | 久久亚洲免费 | 精品欧美一区二区三区久久久 | 国产人妖一区 | 中文字幕在线三区 | 91免费在线 | 一级毛片免费看 | 中文字幕三区 | 狠狠干av | 久久亚洲一区二区三区四区 | av入口| 久久成人精品 | 99视频| 久久99国产精品 | 国产成人精品av | 成人一级片视频 | 成人天堂666| 久久精品成人 | 久久99久 | 久久国产精品免费一区二区三区 | 天天综合91 | 天天操操 | 福利视频一 | 午夜精品久久久久99蜜 | 欧美成人免费在线观看 | 国产精品伦一区二区三级视频 | 国产色在线 | 成人高清av | av免费网站在线观看 | 亚洲视频一区二区三区四区 | 国产精品极品美女在线观看免费 | 色综合网站| 久久视频精品 | 欧美精品一区二区三区一线天视频 | 欧美成人h版在线观看 | 真人女人一级毛片免费播放 | 国产精品日韩欧美一区二区三区 | 欧美一二三 | 欧美一级在线 | 成人婷婷 | 久久伊人操 | 亚洲高清视频在线观看 | 国产精品网站在线 | 精品国产一区二区在线 | 1000部羞羞视频在线看视频 | 国产精品91视频 | 视频二区 | jizz在亚洲 | 国产精品久久久久一区二区三区共 | 国产超碰人人爽人人做人人爱 | 成人h视频在线观看 | 91av在线播放 | 国产精品午夜电影 | 天天操天天干天天干 | 欧美日韩国产影院 | 久久久久国产成人精品亚洲午夜 | 欧美日韩精品一区二区三区四区 | 亚洲国产免费 | 日韩二三区| 美女久久久久 | 国产美女精品一区二区三区 | 激情久久av一区av二区av三区 | 涩涩视频大全 | 日韩一级黄色大片 | 久久99精品久久久久久青青日本 | 欧美精品成人一区二区三区四区 | 亚洲成人一区 | 国产91av视频在线观看 | 欧美天天| 日本一二三区视频 | 成人激情视频免费观看 | 日本一区二区不卡 | 久久免费视频9 | 亚洲在线电影 | 久久久毛片 | 亚洲综合在线一区 | 国产精品一区亚洲二区日本三区 | 九九热这里只有精品6 | 黑人xxx视频| www午夜| 免费看爱爱视频 | 久久精品久久久久久 | 青青草国产 | 国产精品亲子伦av一区二区三区 | 国产精品久久久久久久久动漫 | 美女久久 | 一级黄色国产 | 日韩精品免费在线观看 | 欧美一级欧美三级在线观看 | 欧美日韩在线免费观看 | 欧美久久一级特黄毛片 | 我看午夜视频 | 日韩在线二区 | 午夜伦理影院 | 成人a视频在线观看 | 天堂久久久久久 | 欧美 日韩 在线播放 | 久草精品视频在线播放 | 91社区在线高清 | 亚洲天堂一区二区 | 91夜夜夜 | a免费在线| 中文字幕av亚洲精品一部二部 | 久久一 | 中文字幕 欧美 日韩 | 真人女人一级毛片免费播放 | 国产乱码精品一区二区三区忘忧草 | 91精品综合久久久久久五月天 | 99pao成人国产永久免费视频 | 国产精品久久久久久久久动漫 | 亚洲一区二区三区视频 | 秋霞av电影 | 欧美男人天堂网 | 男女羞羞视频在线免费观看 | 婷婷av在线 | 久久高清毛片 | 亚洲色欲色欲www | 日韩a在线| 国产日韩一区二区三区 | 午夜日韩| 一级激情片 | 国产h视频在线观看 | 97视频在线免费观看 | 山岸逢花在线观看 | 国产ts余喵喵和直男多体位 | 激情欧美一区二区三区中文字幕 | 狠狠搞狠狠操 | 成年人免费看片 | 91亚洲一区| 亚洲www.| 红杏aⅴ成人免费视频 | 精品一区二区三区免费毛片 | 国产成人综合在线 | 精品成人 | 日韩在线欧美 | 亚洲第一成年免费网站 | 亚洲三区在线观看 | 草草视频在线观看 | 久久精品综合 | 自拍偷拍精品 | 欧美一级在线 | 91在线精品秘密一区二区 | 99这里只有精品视频 | 99免费在线播放99久久免费 | 成人高清视频免费观看 | 久草视频在线播放 | 中文字幕在线永久在线视频 | www日本高清| 日韩成人短视频 | 亚洲国产精品一区二区久久 | 国产一级片 | 国产亚洲精品久久久久久豆腐 | 日韩精品一区二区三区第95 | 国产精品美女久久久久久久久久久 | 天天草草草 | 亚洲欧美一区二区三区在线 | 国产一区二区观看 | 99精品网站 | 午夜视频在线 | 天天草天天干 | 99re99| 国产成人精品在线 | 亚洲va中文字幕 | 国产一区二区高潮 | 国产午夜精品福利 | 国产精品视屏 | 成人羞羞网站 | 日韩精品一区二区三区中文在线 | 99热这里有精品 | 亚洲精品国产乱码在线看蜜月 | 激情久久久 | 日韩一区二区三区在线 | 蜜月va乱码一区二区三区 | www.在线播放 | 看毛片网站 | 国产精品久久久久久久午夜片 | 中文字幕日韩专区 | 欧美黑人一级爽快片淫片高清 | 欧美国产在线观看 | 久久精品1区2区 | 欧美日韩中文字幕 | 日韩精品一区在线 | 亚洲成av人片一区二区梦乃 | 羞羞视频在线免费 | 一区网站 | 日韩精品久久久久久 | 亚洲人成在线播放 | 亚洲一区二区三区免费视频 | 免费看91| 精品无码久久久久久国产 | 欧美日韩欧美日韩 | 亚洲成人一区二区三区 | 亚洲成人av在线 | 久久国内精品 | 国产日韩欧美综合 | 国户精品久久久久久久久久久不卡 | 国产黄色网址在线观看 | 一级毛片视屏 | 国产91亚洲精品 | 欧美日韩黄色一级片 | 国产中文字幕一区 | 一区二区三区在线播放 | 欧美在线综合 | 国产一级片在线 | 久久久天堂国产精品女人 | 日韩一区精品视频 | 美女扒开尿口来摸 | 韩日精品| 免费黄色看片 | 成人免费毛片高清视频 | 亚洲国产成人精品女人 | 日韩av在线中文字幕 | 黄色免费网站在线看 | 国产黄网| 国产依人 | 九色91视频| 亚洲国产成人av | 日韩色av | 久久久久国产亚洲日本 | 日韩中文在线播放 | 日韩欧美一二三区 | 亚洲视频三区 | 91视视频在线观看入口直接观看 | 一级毛片电影院 | 欧美日韩亚洲视频 | 国产精品久久一区 | 国产成人免费网站 | 天天插天天射天天干 | 中文一区二区 | 亚洲高清在线 | 成人tv| 99热在线播放 | 欧美成人h版在线观看 | 国产69久久 | 精品久久久久久久久久久久久 | 国产视频网 | www久久99 | 中国黄色毛片 大片 | 免费在线黄色电影 | 中文字幕亚洲字幕一区二区 | 蜜桃一区二区三区 | 青青草av| a视频在线观看 | 久草视频免费看 | 夜夜夜夜夜操 | 成年人视频免费在线看 | 色婷婷国产精品 | 欧美亚洲国产一区 | 亚洲天堂成人 | av中文在线| 一区二区三区不卡视频 | 午夜私人影院 | 国产毛片在线 | 精品福利在线视频 | 亚洲一区二区三区精品视频 | 91精品国产综合久久久久久丝袜 | 国产精品久久久一区二区 | 999国产在线视频 | 国产精品久久久久久久久久小说 | 精品毛片 | 亚洲激情视频在线观看 | 午夜精品久久久久久久久久久久 | 亚洲欧美一区二区三区在线 | 日韩一区在线播放 | 久久久久久久久久久成人 | 你懂的在线视频播放 | 人一级毛片 | 狠狠干美女 | 亚洲91 | 97超碰站 | 日韩av一区二区三区在线 | 成人在线视频免费观看 | 中文字幕第90页 | 久久综合中文字幕 | 黄色毛片免费看 | 欧美日韩精品一区二区 | 国产乱码精品一区二区三区av | 91麻豆精品国产91久久久更新资源速度超快 | 最新超碰| 国产精品久久久久久吹潮 | 在线观看国产小视频 | 青青草网站 | 亚洲成人二区 | 97国产精品 | 中文字幕一区二区三区乱码图片 | av一区在线 | 成人影院网站ww555久久精品 | 成人影院网站ww555久久精品 | 亚洲视频中文字幕 | 国产高清视频一区 | 99日韩| 国产精品亚洲一区二区三区 | 七龙珠z普通话国语版在线观看 | 热久久国产 | 精品国产乱码久久久久久88av | 精品日韩欧美一区二区在线播放 | 日日爱夜夜爱 | 香蕉久久久久久 | 日韩中文字幕av在线 | 91精品国产综合久久福利软件 | 久久精品成人免费视频 | 欧美色图另类 | 9999国产精品欧美久久久久久 | 久久久久久免费免费 | 国产亚洲一区二区三区 | 精品视频久久 | 欧美视频三区 | 在线播放亚洲 | 黄色国产大片 | 成人一区二区在线 | 成人在线国产 | 久久亚洲二区 | 久久精品成人免费视频 | 亚洲精品66 | 欧美涩涩网站 | 欧美一区二区免费 | 一区二区三区不卡视频 | 一区二区三区视频免费在线观看 | 久久伊 | 黄色一级大片在线免费看产 | 久草在线观看福利视频 | 欧美福利 | 国产精品久久久久久 | 亚洲精品国产片 | 国产精品1区2区3区 国产在线观看一区 | 夜夜av| 日韩三级黄 | 日韩成人影院 | 欧美视频在线观看一区 | 三级黄视频在线观看 | 精品久久久久久久久久久久久 | 9999亚洲| 成人欧美一区二区三区在线播放 | 九热精品 | 99久久精品免费看国产免费粉嫩 | 亚洲欧美在线一区 | 欧美成人激情视频 | 一二三四在线视频观看社区 | 成人av小说 | 综合中文字幕 | 亚洲 欧美 日韩在线 | 国产偷国产偷精品高清尤物 | 午夜a级理论片915影院 | 国产日韩亚洲欧美 | 午夜影院在线看 | 国产精品久久久久影院色老大 | 美女福利网站 | 日韩精品视频久久 | 日韩欧美一区二区三区免费观看 | 日韩综合网 | 国产成人久久精品一区二区三区 | 亚洲一区二区三区四区在线观看 | 国产成人在线看 | 国产一区二区三区在线免费观看 | 精品一二区| 日日干夜夜操 | 羞羞的视频网站 | 美女午夜影院 | 亚洲综合色视频在线观看 | 亚洲精选免费视频 | 色吟av| 91资源在线观看 | 欧美激情欧美激情在线五月 | 国产做a爱片久久毛片 | 男女视频免费看 | 国产日韩精品一区二区在线观看播放 | 国产依人| 91免费影片 | 国产亚洲久久 | 久久一 | 中文字幕av第一页 | 亚洲高清视频在线观看 | 久久久久av| 久久精品国产亚洲一区二区三区 | 91国内外精品自在线播放 | 国外成人在线视频 | 精品视频一区在线观看 | 久草毛片 | 精品国产乱码一区二区三区 | 老司机在线精品视频 | 国产一区二区三区免费观看 | 丝袜+亚洲+另类+欧美+变态 | 欧美日韩视频 | 亚洲毛片在线 | 国产一级视频在线播放 | 久久高潮 | 天天操天天插 | 久久久久久久久久久精 | 久久99精品久久久久久久青青日本 | 欧美一级艳片视频免费观看 | 亚洲午夜av | 九色av | 狠狠艹夜夜艹 | 国产毛片在线看 | 国产精品丝袜视频 | 午夜黄色av| 成人精品久久久 | 中文字幕一区二区三区在线视频 | 久久久999成人 | 高清视频一区 | 久久久久一区二区三区 | 欧美男人的天堂 | 国产在线资源 | 韩国精品一区二区三区 | 欧美日韩电影一区二区三区 | 久久av资源网 | 欧美专区在线观看 | 日本在线视频一区 | 奇米精品一区二区三区在线观看 | 999成人网| 国产精品久久久久久久久久10秀 | 欧美一级黄色片免费看 | 亚洲tv久久爽久久爽 | 99精品网站| 国产成人综合一区二区三区 | 在线日韩欧美 | 精品免费视频 | 国产精品二区一区 | 亚洲一区视频在线 | 欧洲一区 | 一区二区三区四区免费 | 老黄网站在线观看 | 国产a免费 | 91一区二区 | 亚洲视频免费 | 91综合视频在线观看 | 成年人黄色一级毛片 | 国产精品99久久久久久久久久久久 | 一区二区国产精品 | 国产成人一区二区三区 | 免费的av网站 | 免费成人高清 | 欧美极品欧美精品欧美视频 | 黄色一级电影免费观看 | 亚洲一区视频 | 在线国产区 | 欧美午夜精品久久久 | 成人午夜在线观看 | 欧美视频在线免费看 | 午夜激情影院 | 黄色片视频在线观看 | 毛片在线看片 | 日韩亚洲在线 | 亚洲精品乱码久久久久久国产主播 | 国产欧美在线一区二区 | 国产日韩欧美综合 | 亚洲一区二区三 | 黑人性dh | 精品无码久久久久国产 | 偷偷干夜夜拍 | 国产精品久久久久久婷婷天堂 | 欧美一级精品片在线看 | 韩日精品视频 | 亚洲一区免费视频 | 大香伊蕉在人线视频777 | 久久久久久久成人 | 激情欧美日韩一区二区 | 亚洲电影免费 | 亚洲一区二区中文 | 日韩精品在线播放 | 日韩电影在线看 | 免费在线h | 久久久久国产精品一区二区 | 国产aaaaav久久久一区二区 | 久久国产精品视频 | 欧美精品成人一区二区在线 | 亚洲久久在线 | 欧美性一区二区三区 | 亚洲精品三级 | 日韩在线观看 | 天堂免费在线 | 99re免费视频精品全部 | 日日干夜夜操 | 天天曰天天曰 | 欧美在线综合 | 一级女性全黄久久生活片免费 | 一级片网 | 逼逼av | 久久亚洲欧美日韩精品专区 | 精品久久久久久国产 | 米奇狠狠狠狠8877 | 99久久精品免费看国产一区二区三区 | 亚洲精品视频在线 | 国产中文字幕在线观看 | 99精品国产高清在线观看 | 91成人免费在线视频 | 国产v日产∨综合v精品视频 | 欧美日韩国产一级片 | 欧美 日韩 国产 成人 在线 | 色婷婷国产精品综合在线观看 | 免费看毛片的网站 | 国精产品一区二区三区黑人免费看 | 国产九九av | 成人亚洲免费 | 精品国产仑片一区二区三区 | 日本欧美大片 | 久久波多野结衣 | 九色影院 | 色综合久久久久综合99 | 成人免费aaa | 五月激情综合 | 国产一区二区视频在线观看 | 91精品国产乱码久久久久久 | 麻豆.蜜桃.91.天美入口 | 日韩视频在线观看中文字幕 | 91精品久久久久久久91蜜桃 | 国产精品久久久久久久一区探花 | 国产综合精品视频 | 中文字幕在线观看 | 亚洲日本乱码一区两区在线观看 | 欧美精品在欧美一区二区少妇 | 久久久久久一区 | 久久久久久久久国产精品 | 久久精美视频 | 女人久久久 | 久久亚洲二区 | 欧美成人免费 | 波多野结衣一区二区三区高清 | 在线观看亚洲大片短视频 | 国产情侣av自拍 | 成人a在线观看 | 一区二区三区国产好的精 | 亚洲天堂一区二区 | 91久久国产精品 | 亚洲a网 | 国产在线高清视频 | 福利午夜 | 亚洲免费网 | 国产亚洲一区二区在线 | 美女一区二区三区在线观看 | 成人a网| 天天舔天天干天天操 | 这里有精品视频 | 97色婷婷成人综合在线观看 | 国产成人精品亚洲日本在线观看 | 国产精品18hdxxxⅹ在线 | 久久极品 | 国产亚洲精品精品国产亚洲综合 | 嫩草网站入口 | 国产日韩av在线 | 99re在线视频| 亚洲精品美女在线观看 | 91在线高清 | 欧美一区二区三区视频 | 免费看片国产 | 欧美精品国产精品 | 日本一区二区不卡 | 久久99这里只有精品 | 99这里只有精品视频 | 日韩性猛交 | 亚洲精品一区二区三区在线看 | 亚洲成人福利 | 日韩综合一区 | 久久久久久久久久久免费视频 | 日本久久网 | 一区二区中文字幕 | 日韩精品一区二区三区在线观看 | 欧美精品二区 | 午夜视| 人人爽在线 | 在线播放亚洲 | 夜夜草视频 | 午夜精品亚洲日日做天天做 | 综合久久综合久久 | 亚洲精美视频 |