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

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

利用Java搭建個簡單的Netty通信實例教程

瀏覽:150日期:2022-09-01 15:08:10

前言

看過dubbo源碼的同學應該都清楚,使用dubbo協議的底層通信是使用的netty進行交互,而最近看了dubbo的Netty部分后,自己寫了個簡單的Netty通信例子。

準備

工程截圖

利用Java搭建個簡單的Netty通信實例教程

模塊詳解

rpc-common

rpc-common作為各個模塊都需使用的模塊,工程中出現的是一些通信時請求的參數以及返回的參數,還有一些序列化的工具。

rpc-client

rpc-client中目前只是單單的一個NettyClient啟動類。

rpc-server

rpc-client中目前也只是單單的一個NettyServer服務啟動類。

需要的依賴

目前所有的依賴項都出現在 rpc-common 下的 pom.xml中。

<dependencies> <!-- Netty --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.10.Final</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> </dependency> <!-- Protostuff --> <dependency> <groupId>com.dyuproject.protostuff</groupId> <artifactId>protostuff-core</artifactId> <version>1.0.9</version> </dependency> <dependency> <groupId>com.dyuproject.protostuff</groupId> <artifactId>protostuff-runtime</artifactId> <version>1.0.9</version> </dependency> <!-- Objenesis --> <dependency> <groupId>org.objenesis</groupId> <artifactId>objenesis</artifactId> <version>2.1</version> </dependency> <!-- fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.38</version> </dependency></dependencies>

實現

首先我們在common中先定義本次的Request和Response的基類對象。

public class Request { private String requestId; private Object parameter; public String getRequestId() { return requestId; } public void setRequestId(String requestId) { this.requestId = requestId; } public Object getParameter() { return parameter; } public void setParameter(Object parameter) { this.parameter = parameter; }}public class Response { private String requestId; private Object result; public String getRequestId() { return requestId; } public void setRequestId(String requestId) { this.requestId = requestId; } public Object getResult() { return result; } public void setResult(Object result) { this.result = result; }}

使用fastJson進行本次序列化

Netty對象的序列化轉換很好懂, ByteToMessageDecoder 和 MessageToByteEncoder 分別只要繼承它們,重寫方法后,獲取到Object和Byte,各自轉換就OK。

不過如果是有要用到生產上的同學,建議不要使用 fastJson,因為它的漏洞補丁真的是太多了,可以使用google的 protostuff。

public class RpcDecoder extends ByteToMessageDecoder { // 目標對象類型進行解碼 private Class<?> target; public RpcDecoder(Class target) { this.target = target; } @Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception { if (in.readableBytes() < 4) { // 不夠長度丟棄 return; } in.markReaderIndex(); // 標記一下當前的readIndex的位置 int dataLength = in.readInt(); // 讀取傳送過來的消息的長度。ByteBuf 的readInt()方法會讓他的readIndex增加4 if (in.readableBytes() < dataLength) { // 讀到的消息體長度如果小于我們傳送過來的消息長度,則resetReaderIndex. 這個配合markReaderIndex使用的。把readIndex重置到mark的地方 in.resetReaderIndex(); return; } byte[] data = new byte[dataLength]; in.readBytes(data); Object obj = JSON.parseObject(data, target); // 將byte數據轉化為我們需要的對象 out.add(obj); }}public class RpcEncoder extends MessageToByteEncoder { //目標對象類型進行編碼 private Class<?> target; public RpcEncoder(Class target) { this.target = target; } @Override protected void encode(ChannelHandlerContext ctx, Object msg, ByteBuf out) throws Exception { if (target.isInstance(msg)) { byte[] data = JSON.toJSONBytes(msg); // 使用fastJson將對象轉換為byte out.writeInt(data.length); // 先將消息長度寫入,也就是消息頭 out.writeBytes(data); // 消息體中包含我們要發送的數據 } }}

NetyServer

public class NettyServerHandler extends ChannelInboundHandlerAdapter { @Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { Request request = (Request) msg; System.out.println('Client Data:' + JSON.toJSONString(request)); Response response = new Response(); response.setRequestId(request.getRequestId()); response.setResult('Hello Client !'); // client接收到信息后主動關閉掉連接 ctx.writeAndFlush(response).addListener(ChannelFutureListener.CLOSE); } @Override public void channelReadComplete(ChannelHandlerContext ctx) throws Exception { ctx.flush(); } @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { ctx.close(); }}public class NettyServer { private static final Logger logger = LoggerFactory.getLogger(NettyServer.class); private String ip; private int port; public NettyServer(String ip, int port) { this.ip = ip; this.port = port; } public void server() throws Exception { EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup workerGroup = new NioEventLoopGroup(); try { final ServerBootstrap serverBootstrap = new ServerBootstrap(); serverBootstrap.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .option(ChannelOption.SO_BACKLOG, 1024) .option(ChannelOption.SO_SNDBUF, 32 * 1024) .option(ChannelOption.SO_RCVBUF, 32 * 1024) .option(ChannelOption.SO_KEEPALIVE, true) .childHandler(new ChannelInitializer<SocketChannel>() { protected void initChannel(SocketChannel socketChannel) throws Exception { socketChannel.pipeline().addLast(new RpcDecoder(Request.class)) .addLast(new RpcEncoder(Response.class)) .addLast(new NettyServerHandler()); } }); serverBootstrap.childOption(ChannelOption.SO_KEEPALIVE, true); // 開啟長連接 ChannelFuture future = serverBootstrap.bind(ip, port).sync();// if (future.isSuccess()) {////new Register().register('/yanzhenyidai/com.yanzhenyidai.server', ip + ':' + port);// } future.channel().closeFuture().sync(); } finally { bossGroup.shutdownGracefully(); workerGroup.shutdownGracefully(); } } public static void main(String[] args) throws Exception { new NettyServer('127.0.0.1', 20000).server(); }}

關鍵名詞:

EventLoopGroup workerGroup bossGroup Server端的EventLoopGroup分為兩個,一般workerGroup作為處理請求,bossGroup作為接收請求。 ChannelOption SO_BACKLOG SO_SNDBUF SO_RCVBUF SO_KEEPALIVE 以上四個常量作為TCP連接中的屬性。 ctx.writeAndFlush(response).addListener(ChannelFutureListener.CLOSE);

NettyServerHandler中出現的 ChannelFutureListener.CLOSE ,作為Server端主動關閉與Client端的通信,如果沒有主動Close,那么NettyClient將會一直處于阻塞狀態,得不到NettyServer的返回信息。

NettyClient

public class NettyClient extends SimpleChannelInboundHandler<Response> { private final String ip; private final int port; private Response response; public NettyClient(String ip, int port) { this.ip = ip; this.port = port; } @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { ctx.close(); } @Override protected void channelRead0(ChannelHandlerContext channelHandlerContext, Response response) throws Exception { this.response = response; } public Response client(Request request) throws Exception { EventLoopGroup group = new NioEventLoopGroup(); try { // 創建并初始化 Netty 客戶端 Bootstrap 對象 Bootstrap bootstrap = new Bootstrap(); bootstrap.group(group); bootstrap.channel(NioSocketChannel.class); bootstrap.handler(new ChannelInitializer<SocketChannel>() {@Overridepublic void initChannel(SocketChannel channel) throws Exception { ChannelPipeline pipeline = channel.pipeline(); pipeline.addLast(new RpcDecoder(Response.class)); pipeline.addLast(new RpcEncoder(Request.class)); pipeline.addLast(NettyClient.this);} }); bootstrap.option(ChannelOption.TCP_NODELAY, true);// String[] discover = new Discover().discover('/yanzhenyidai/com.yanzhenyidai.server').split(':'); // 連接 RPC 服務器 ChannelFuture future = bootstrap.connect(ip, port).sync(); // 寫入 RPC 請求數據并關閉連接 Channel channel = future.channel(); channel.writeAndFlush(request).sync(); channel.closeFuture().sync(); return response; } finally { group.shutdownGracefully(); } } public static void main(String[] args) throws Exception { Request request = new Request(); request.setRequestId(UUID.randomUUID().toString()); request.setParameter('Hello Server !'); System.out.println(JSON.toJSONString(new NettyClient('127.0.0.1', 30000).client(request))); }}

測試

如果以上所有內容都準備就緒,那么就可以進行調試了。

啟動順序,先啟動NettyServer,再啟動NettyClient。

總結

記得剛出來工作時,有工作很多年的同事問我了不了解Netty,當時工作太短,直說聽過Putty,現在回想起來真的挺丟人的,哈哈。😋

Netty作為通信框架,如果你了解TCP,而且項目中有類似傳輸信息的需求,又不想集成HTTP或者Socket,那么Netty真的挺實用的。

參考資料:

Dubbo-Netty Netty.io

本項目Github地址:Netty-RPC

到此這篇關于利用Java搭建個簡單的Netty通信的文章就介紹到這了,更多相關Java搭建Netty通信內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 成人a网| 亚洲精品一区二区三区中文字幕 | 国产精品久久婷婷六月丁香 | 成年人在线观看 | 免费亚洲婷婷 | 天堂一区二区三区在线 | 91亚洲一区 | 久久青| 国产精品免费看 | 欧美精品免费在线观看 | 久久五月视频 | 日韩电影一区二区三区 | 精品国产一区二区三区久久影院 | 国产精品69毛片高清亚洲 | 亚洲精品乱码久久久久久国产主播 | 日韩一区二区三区在线观看 | 国产美女自拍视频 | 亚洲日韩中文字幕一区 | 福利片在线观看 | 老汉色影院 | 欧美日韩在线不卡 | 亚洲人成人一区二区在线观看 | 国产一区二区在线免费观看 | 人妖天堂狠狠ts人妖天堂狠狠 | 2019天天操 | 午夜视频在线观看网站 | 国精品一区二区三区 | 亚洲综合在线视频 | xxxx网| 日本精品一区二区三区视频 | 国产天堂网 | 久久不卡| 看片久久 | 欧美一区二区三区免费视频 | 日韩成人精品在线 | 日韩欧美中字 | www在线看片| 中文字幕一区二区三区乱码在线 | 精品国产乱码简爱久久久久久 | 久久久精品综合 | 久久久久久亚洲 | 精品国产鲁一鲁一区二区三区 | 91精品国产91久久综合桃花 | 激情视频在线观看 | 一区二区免费播放 | 国产精品精品视频一区二区三区 | 久久久久久一区 | 97在线免费观看 | 国产亚洲精品久久久闺蜜 | 日韩精品一区二区在线观看 | 免费网站看v片在线a | 免费一区二区三区 | 亚洲精品影院 | 亚洲精品视频在线观看免费 | 国产精品日韩欧美一区二区三区 | 中国一级毛片 | 精品国产一区二区三区久久久蜜月 | 中文字幕在线一区 | 欧美日韩国产欧美 | 久久精品极品 | 99国产精品| 奇米av| 欧美一区 | 亚洲黄色一级毛片 | 久久网日本 | 在线一级视频 | 日韩视频在线免费播放 | 亚洲欧美另类久久久精品2019 | 91麻豆精品国产91久久久资源速度 | 国产亚洲一区二区精品 | 精品一区二区三区三区 | 国产精品久久久久国产a级 国产精品欧美一区二区三区不卡 | 久久久久久久久久久久福利 | 九色一区 | 91精品国产91久久久久久黑人 | 日韩综合在线 | 99国产精品久久久 | 91麻豆精品一二三区在线 | 国产精品久久国产精品 | 日韩精品久久久久久 | 色九九 | 波多野结衣 一区二区 | 99re视频在线| 免费成人av网站 | 国产九九精品 | 成人av片在线观看 | 久久精品二区 | 羞羞视频在线免费观看 | 精品无码久久久久国产 | 精品国产一区二区三区在线观看 | 高清一区二区三区视频 | 精品久久久久久久久久久久久久久久久久 | 午夜影院免费 | 精品伦精品一区二区三区视频 | 欧美在线观看视频 | 亚洲一区电影 | 日韩高清中文字幕 | 欧美国产视频 | 国产精品无码久久久久 | 高清中文字幕 | 亚洲人成人一区二区在线观看 | 狠狠搞狠狠搞 | 日韩av免费在线观看 | 国产精品久久久久久久天堂 | 男女做爰高清无遮挡免费视频 | 亚洲视频在线看 | 成人高清视频在线 | 日韩成人高清 | 香蕉视频91| 成人免费视频一区二区 | 在线播放黄色片网站 | 红色av社区| 国产在线一区二区三区 | 99在线免费视频 | 日韩国伦理久久一区 | 日本a视频 | 免费国产一区二区 | 国产精品成人3p一区二区三区 | 亚洲 欧美 综合 | 日本欧美一区二区 | 久久久久国产精品免费免费搜索 | 日韩精品三区 | 欧美在线观看网站 | www.黄网| 欧美日韩激情在线一区二区三区 | 国产视频第一页 | 日本色网址 | 一区二区三区视频 | 国产a免费 | 黄色一级片免费播放 | 成人在线免费电影 | 日本精品一区二区在线观看 | 色婷婷av久久久久久久 | 一区二区久久久 | 亚洲视频一 | 国产精品日产欧美久久久久 | 日韩成人免费中文字幕 | 在线一区二区免费 | 久久国产精品一区 | 九九资源站 | 日韩一区二区三区视频 | 日韩中文字幕一区二区高清99 | 国产精品日韩 | 国产最好的av国产大片 | 91精品国产综合久久婷婷香蕉 | 一区二区三区视频在线免费观看 | 国产精品久久久久久久久久三级 | 日本免费一区二区三区 | 国产精品视频网 | 国产精品美女久久久久久久网站 | 国语精品久久 | 欧洲亚洲一区 | 五月婷婷激情 | 欧美电影一区 | 亚洲精品福利 | 欧美自拍视频 | 婷婷激情综合 | 久久久久久久久久久久91 | 欧美国产精品一区 | 久久久久久久久国产 | 日本美女一区二区三区 | 精品av| 欧洲成人在线 | 亚洲国产成人久久综合一区,久久久国产99 | 久久99国产精品久久99大师 | 国产成人亚洲精品 | 国产成人涩涩涩视频在线观看 | 国产精品久久久久久久久久东京 | 欧美激情精品久久久久久免费 | 国产精彩视频 | 91高清在线观看 | 9999久久久久| 久久99精品久久久久久琪琪 | 久久国产成人 | 国产偷自视频区视频 | 亚洲国产一区二区在线 | 综合激情av | 中文字幕av一区二区三区 | 成人精品久久 | 日本高清视频一区二区三区 | 精品无码久久久久国产 | 美女国产精品 | 国产高清不卡在线 | 涩涩视频在线看 | 超碰在线影院 | 免费看性生交大片 | 夜久久 | 久久成人一区 | 91在线视频观看 | 国产免费高清 | 成人免费黄色毛片 | 亚洲一区| 久久久国产精品 | 男女啪啪无遮挡 | 欧美1区| 成人午夜精品 | 奇米影视奇米色777欧美 | av午夜| 久久国产精品久久精品 | 国内自拍视频网 | 五月激情综合网 | 久久国内 | 久久久综合色 | 欧美一区二区大片 | 亚洲福利二区 | 国产午夜精品一区二区三区视频 | 欧美一区二区三区 | 欧美视频网站 | 亚洲高清视频一区二区 | 欧美激情性国产欧美无遮挡 | 草草网 | 国产成人高清 | 伊人网在线视频免费观看 | 国产亚洲一区二区精品 | 久久久久久亚洲 | 国产精品毛片久久久久久久 | 亚洲国产高清高潮精品美女 | 最新国产视频 | 国产精品一区二区av | 一区二区三区精品 | 亚洲成人精品 | 七七婷婷婷婷精品国产 | 中文成人在线 | 亚洲精品一区二区三区蜜桃久 | 玖玖久久 | 亚洲天天操| 一本色道久久综合狠狠躁篇的优点 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 看免费av | 欧美日韩一 | 男女免费视频 | 国产视频一区二区 | 国产在线观看二区 | 日韩欧美一区二区三区 | 欧美www.| porn一区 | 日本在线视频观看 | 精品国产欧美一区二区三区不卡 | 中文字幕不卡在线 | 日韩综合视频在线观看 | 亚洲精品国产精品国自产 | 日本精品一区二区三区在线观看 | 久久久中文字幕 | 99精品国产高清一区二区麻豆 | 欧美一区二区三区成人 | 黄视频入口 | h视频在线观看免费 | 国产成人一区 | 国产在线第一页 | 欧美福利在线观看 | 亚洲免费视频在线观看 | 国产精品99久久久久久久vr | 欧美日韩在线观看一区二区三区 | 狠狠狠色丁香婷婷综合久久五月 | 久久99精品久久久 | aaa大片免费观看 | 亚洲xx在线 | 久久一级 | 99在线视频播放 | 久久精品亚洲 | 黄色拍拍视频 | 一区二区中文 | 亚洲一区视频在线播放 | 久久1区 | 日韩中文字幕在线播放 | 精品免费视频 | 国产v片| 午夜天 | 成人a在线观看 | 国产一级特黄视频 | 亚洲日本乱码一区两区在线观看 | 中文字幕在线观看的电影 | 青草成人免费视频 | 波多野结衣先锋影音 | 97色免费视频 | 免费看国产片在线观看 | 1204国产成人精品视频 | 少妇精品久久久久久久久久 | 久久精品一区二区三区四区 | 亚洲天堂影视 | 日韩在线观看 | 国产欧美综合视频 | 欧美日韩精品久久久 | 亚洲精品日韩综合观看成人91 | 91精品国产综合久久婷婷香蕉 | 日韩在线看片 | 免费黄色在线 | 免费观看日韩av | 国产99久久久国产精品 | 天天插天天操天天干 | 亚洲中午字幕 | 成人在线激情 | 影视一区 | 午夜免费小视频 | 国产美女在线观看 | 九九综合九九 | 久久9热 | 在线播放91| 在线a电影 | 国产中文一区二区三区 | 免费一区二区 | 国产精品久久久久国产精品 | 中国妞xxxhd露脸偷拍视频 | 欧美日韩一区二区三区四区 | 亚洲精品一区二区三区四区高清 | 夜夜骚| 国产一级在线观看 | 91久久九色 | 久久久一二三 | 2020天天操 | 天堂综合网 | chengrenzaixian| 国产成人免费视频 | 欧美 日韩 国产 一区 | 成人片网址 | 韩国一区二区视频 | 欧美全黄 | 国产精品三级在线 | 欧美日韩在线视频一区 | 久久不卡| 一区二区三区四区在线视频 | 国产黄色免费小视频 | 亚洲一区二区三区四区五区中文 | 欧美一级黄带 | 成人 在线 | 天天夜碰日日摸日日澡 | 亚洲成人免费网站 | 久久久久久久久一区 | 99在线视频精品 | 天堂一区二区三区四区 | 久久久一 | 一级视频网站 | 精品免费国产一区二区三区 | 久久精品久久久 | 亚洲欧美一级久久精品 | 久久久久久91| 欧美精品成人一区二区三区四区 | 午夜在线观看视频网站 | 97人人干 | 婷婷色视频 | 日韩性视频 | 性一级录像片片视频免费看 | 日本一区二区不卡 | 日本在线观看一区二区 | 欧美午夜视频在线观看 | 色综合成人 | 91精品一区二区三区久久久久久 | 蜜桃臀一区二区三区 | 日韩中文字幕一区二区 | 久久久精品久久久 | 欧美精品一区二区三区在线四季 | 国产男人的天堂 | 精品一区av | 一区在线不卡 | 日本大人吃奶视频xxxx | 欧美一区2区三区4区公司二百 | 亚洲影视一区二区 | 最新av网址大全 | 国产网址在线 | 亚洲一级黄色 | 高清国产午夜精品久久久久久 | 男女18免费网站视频 | 91在线视频观看 | gav成人免费播放视频 | 国产精品99久久 | 精品一区二区三区蜜桃 | 欧美女优在线视频 | 精品一区二区三区四区视频 | 精品99久久 | 伊人网网站| 久久青 | 欧洲亚洲精品久久久久 | 精品成人在线视频 | 看一级毛片视频 | 香蕉视频成人在线观看 | 欧产日产国产精品一二 | 夜夜av| 久久99精品国产自在现线 | 国产亚洲精品美女久久久久久久久久 | 成人在线小视频 | 精品在线一区二区 | 91se在线| 羞羞视频在线播放 | 亚洲高清视频在线观看 | 免费在线视频精品 | 中文在线视频 | 特级丰满少妇一级aaaa爱毛片 | 欧美日韩亚洲一区二区 | 国产在线观 | 久草色视频在线观看 | 亚洲一区中文字幕在线观看 | 亚洲一区二区三 | 国产一区二区三区久久久 | 成人三级视频网站 | 欧美精品导航 | 草草久久久 | 精品久久久久久久久久久院品网 | 亚洲黄色成人 | 真人一级毛片 | 日韩中文字幕三区 | 国产在线中文字幕 | 午夜看片在线观看 | 国产精品久久久久久妇女6080 | 国产一区在线视频 | 欧美国产伦久久久久久 | 久久久毛片 | 精品亚洲一区二区三区四区五区 | 午夜久久久久 | 在线小视频 | 久久久精品国产 | 不用播放器的毛片 | 国产精品高清在线 | 成人在线国产 | 成年免费a级毛片 | 国产精品99久久久久久久vr | 国产精品久久久久久久午夜 | 北条麻妃99精品青青久久 | 中文字幕精品一区 | 婷婷色在线 | 黄色免费网站在线看 | 亚洲精品久久久久久一区二区 | 第一色综合| 色综合天天天天做夜夜夜夜做 | 国产一区二区亚洲 | 久久精品免费视频播放 | 国产成人在线看 | 亚洲欧美日韩另类精品一区二区三区 | 欧美在线综合 | www精品| 一级视频网站 | 成人欧美一区二区三区在线播放 | 亚洲欧美精品一区二区三区 | www.麻豆av| 欧美久久久久久久久久 | 国产精品美女久久久久久久网站 | 欧美午夜精品一区二区三区电影 | 99久久99热这里只有精品 | 久久久久国产一级毛片高清版小说 | 一区综合 | 久久亚洲天堂 | 久久久久九九九九 | 91在线免费看 | 中文字幕在线观看免费 | 亚洲人人草 | 黄色片网站视频 | 一区二区三区中文字幕 | 综合国产 | 中文字幕在线电影观看 | www.久久久.com | 亚洲成人一区二区 | 亚州中文字幕蜜桃视频 | 色婷婷影院| 台湾佬亚洲色图 | 中文字幕一区在线 | 成人乱人乱一区二区三区 | 久久久www| 午夜精品在线 | 鲁管视频 | 日韩在线观看 | 亚洲美女视频一区二区三区 | 求av网站 | 日韩免费一区二区 | 国产一区二区亚洲 | 亚洲国产精品久久 | 一区二区成人网 | 无码日韩精品一区二区免费 | 91久久精品一区二区二区 | 日韩高清国产一区在线 | 精品久久久久久久久久久 | 2019中文字幕视频 | 国产精品一区二区无线 | 国产精品久久国产精品 | 日韩久久久久久 | 国产精品一区二区三区四区 | 在线观看国产一区 | 久久久精品国产 | 日日操夜夜操天天操 | 日本一区二区高清视频 | 欧美日韩亚洲国内综合网 | 中文字幕一区二区三区四区不卡 | 日韩免费视频一区二区 | 成人综合社区 | 欧美日韩在线看 | 国产1页 | 欧美一区二区三区四区不卡 | xxxx欧美| 中文视频在线 | 久久久久久1 | 国产综合精品一区二区三区 | 夜夜爽99久久国产综合精品女不卡 | 国产在线观看av | 欧美日韩第一 | 亚洲激情视频在线观看 | 亚洲另类视频 | 国产精品久久九九 | 91九色视频在线 | 久久久久久久久综合 | 亚洲三级在线观看 | 亚洲成人二区 | 久久久久久婷婷 | 免费视频爱爱太爽了 | 成人在线免费 | 亚洲午夜精品a | 日韩一区二区三区视频 | 五月激情综合婷婷 | 一区二区三区影院 | 久久天堂电影 | 羞羞视频免费观 | 久久99国产精品久久99果冻传媒 | 99精品国产热久久91蜜凸 | 中文字幕av在线播放 | 亚洲精品福利 | 狠狠久久婷婷 | 国产精品1区2区 | av一区二区三区四区 | 日韩在线欧美 | 特级毛片 | 国产一级黄| 国产区视频在线观看 | 亚洲精品国产偷自在线观看 | 欧美一区二区三区视频在线观看 | 久草视频免费在线播放 | 久久久一区二区三区 | 亚洲精品乱码久久久久久花季 | 三级网站在线播放 | 可以免费在线观看av的网站 | 久久久久久久网站 | 欧美成人精品激情在线观看 | 欧美精品亚洲精品 | 午夜视频网站 | 精品国产区 | 午夜在线电影 | 久久99精品久久久久久噜噜 | 国产网站在线播放 | 亚洲天天操 | 99九九久久 | 国产日韩欧美一区 | 久久性色| 天天干天天草 | 成年人在线观看 | 99国产视频 | 亚洲一区二区久久 | 国产精品福利一区 | 欧美白人做受xxxx视频 | 99久久婷婷国产综合精品电影 | 狠狠色狠狠色合久久伊人 | 亚洲视频一区在线播放 | 在线毛片观看 | a级毛片免费高清视频 | 国产亚洲成av人片在线观看桃 | 久久精品久久精品国产大片 | 天堂中文av在线 | 日韩一区二区不卡 | 日日操视频 | 日日干夜夜骑 | 日韩 国产 在线 | 欧美狠狠操 | 凹凸日日摸日日碰夜夜 | 在线一级视频 | 日本视频一区二区三区 | 91免费影视 | 日本三级黄色录像 | 国产精品三级在线 | 99精品久久久 | 黄色片在线免费观看 | 久久久国产精品 | 欧美日韩国产精品 | 亚洲最新中文字幕 | 午夜激情视频 | 狠狠的干| 欧美精品成人 | 国产精品一二三区 | 91精品国产综合久久久久久漫画 | 亚洲在线播放 | 亚洲欧美另类久久久精品2019 | 在线观看国产视频 | 三级黄视频在线观看 | 国产精品视屏 | 青青久久 | 免费视频一区二区三区在线观看 | 羞羞午夜| 一区二区在线看 | 亚洲国产精品久久 | 91视频免费看 | 久久久www成人免费无遮挡大片 | 欧美激情一区二区三区在线观看 | 亚洲精品视频在线免费 | 国产精品不卡 | 亚洲欧美一区二区三区久久 | 天天色天天 | 欧美黄色片 | 日本美女一区二区 | 黄色在线免费观看 | 亚洲一区二区三区视频 | 精品无人乱码一区二区三区 | 欧美第一区 | 美女久久 | 在线日韩中文字幕 | 久久精品国产亚洲一区二区三区 | 国产成人精品一区二区三区视频 | 国产美女视频一区 | 国产精品成人网 | 国产传媒在线观看 | 97在线超碰| 精品欧美一区二区在线观看视频 | 欧美在线一区二区三区 | 在线观看黄免费 | 精品国产欧美一区二区 | 亚洲精品视频在线播放 | 国产精品日本欧美一区二区三区 | 欧美一区二区三区视频 | 亚洲成人免费影院 | 黄色小视频免费观看 | 4hu网站 | 午夜激情在线观看 |