日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

mysql udp服务器_netty学习:UDP服务器与Spring整合(2)

發布時間:2025/3/15 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql udp服务器_netty学习:UDP服务器与Spring整合(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上一篇文章中,介紹了netty實現UDP服務器的栗子。

本文將會對UDP服務器與spring boot整合起來,并使用RedisTemplate的操作類訪問Redis和使用Spring DATA JPA鏈接MySQL數據庫,其中會使用多線程、異步等知識。

只公布了一個框架,需要的同學可以根據此來進行擴展,增加自己需要的功能模塊。如Controller部分。

本人使用的編輯器是IntelliJ IDEA 2017.1.exe版本(鏈接:http://pan.baidu.com/s/1pLODHm7 密碼:dlx7);建議使用STS或者是idea編輯器來進行spring的學習。

1)項目目錄結構

整個項目的目錄結構如下:

2)jar包

其中pom.xml文件的內容如下:

只有netty-all和commons-lang3是手動加入的jar包,其余的都是創建spring boot項目時候選擇組件后自動導入的。

1 <?xml version="1.0" encoding="UTF-8"?>

2

3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4 4.0.0

5

6 com.example

7 udplearning

8 0.0.1-SNAPSHOT

9 jar

10

11 udplearning

12 Demo project for Spring Boot

13

14

15 org.springframework.boot

16 spring-boot-starter-parent

17 1.5.6.RELEASE

18

19

20

21

22 UTF-8

23 UTF-8

24 3.4

25 1.8

26

27

28

29

30

31

32

33 io.netty

34 netty-all

35 4.0.49.Final

36

37

38

39

40 org.apache.commons

41 commons-lang3

42 ${commons-lang3.version}

43

44

45

46

47

48 org.springframework.boot

49 spring-boot-starter-data-jpa

50

51

52 org.springframework.boot

53 spring-boot-starter-data-redis

54

55

56 org.springframework.boot

57 spring-boot-starter-jdbc

58

59

60 org.springframework.boot

61 spring-boot-starter-web

62

63

64 org.springframework.boot

65 spring-boot-starter-web-services

66

67

68

69 mysql

70 mysql-connector-java

71 runtime

72

73

74 org.springframework.boot

75 spring-boot-starter-test

76 test

77

78

79

80

81

82

83 org.springframework.boot

84 spring-boot-maven-plugin

85

86

87

88

89

90

3)配置文件application.properties

application.properties的內容:

1 spring.profiles.active=test2

3 spring.messages.encoding=utf-8

4

5 logging.config=classpath:logback.xml

“spring.profiles.active”?針對多種啟動環境的spring boot配置方法,此時啟動的是test運行環境,即默認是啟動application-test.properties里面的配置信息;

“spring.messages.encoding=utf-8”是指編碼方式utf-8;

“logging.config=classpath:logback.xml”是指日志文件位置。

application-test.properties的內容如下:

1 context.listener.classes=com.example.demo.init.StartupEvent2

3 #mysql4 spring.jpa.show-sql=true

5 spring.jpa.database=mysql6 #spring.jpa.hibernate.ddl-auto=update7 spring.datasource.url=jdbc:mysql://127.0.0.1/test

8 spring.datasource.username=root9 spring.datasource.password=123456

10 spring.datasource.driver-class-name=com.mysql.jdbc.Driver11 spring.datasource.jdbc-interceptors=ConnectionState;SlowQueryReport(threshold=0)12

13 spring.session.store-type=none14

15 # (RedisProperties)16 spring.redis.database=3

17 spring.redis.host=127.0.0.1

18 spring.redis.port=6379

19 spring.redis.password=123456

20 spring.redis.pool.max-active=8

21 spring.redis.pool.max-wait=-1

22 spring.redis.pool.max-idle=8

23 spring.redis.pool.min-idle=0

24 spring.redis.timeout=0

25

26

27 #UDP消息接收打端口28 sysfig.udpReceivePort = 7686

29

30 #線程池31 spring.task.pool.corePoolSize = 5

32 spring.task.pool.maxPoolSize = 100

33 spring.task.pool.keepAliveSeconds = 100

34 spring.task.pool.queueCapacity = 100

其中配置了context.listener.classes=com.example.demo.init.StartupEvent,將StartupEvent類作為Spring boot啟動后執行文件。

其中還配置了一些mysql、redis和自定義的屬性。可根據項目的實際情況修改。

4)日志文件logback.xml

logback.xml的內容如下:

1 <?xml version="1.0" encoding="UTF-8"?>

2

3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

4 xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback

5 http://ch.qos.logback/xml/ns/logback/logback.xsd

6 http://ch.qos.logback/xml/ns/logback ">

7

8

9 ${APP_Name}

10

11

12

13 %d{yyyyMMddHHmmss}|%-5level| %logger{0}.%M | %msg | %thread %n

14

15

16

17

18

19 ${catalina.home}/logs/app.%d{yyyyMMdd}.log

20 30

21

22

23 %d{yyMMddHHmmss.SSS}|%-5level| %msg%n

24

25

26

27

28

29 ${catalina.home}/logs/run.%d{yyyyMMdd}.log

30 7

31

32

33 %d{yyMMddHHmmss.SSS}|%-5level| %msg%n

34

35

36

37

38

39

40

41

42

43

44

45

日志的級別是info級別 ?可以根據自己項目的實際情況進行設置。

5)StartupEvent.java

1 packagecom.example.demo.init;2

3 importorg.slf4j.Logger;4 importorg.slf4j.LoggerFactory;5 importorg.springframework.context.ApplicationContext;6 importorg.springframework.context.ApplicationListener;7 importorg.springframework.context.event.ContextRefreshedEvent;8

9 /**

10 *11 * Created by wj on 2017/8/28.12 */

13

14 public class StartupEvent implements ApplicationListener{15 private static final Logger log = LoggerFactory.getLogger(StartupEvent.class);16

17 private staticApplicationContext context;18

19 @Override20 public voidonApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {21

22 try{23

24 context =contextRefreshedEvent.getApplicationContext();25

26 SysConfig sysConfig = (SysConfig) context.getBean(SysConfig.class);27

28 //接收UDP消息并保存至redis中

29 UdpServer udpServer = (UdpServer)StartupEvent.getBean(UdpServer.class);30 udpServer.run(sysConfig.getUdpReceivePort());31

32

33 //這里可以開啟多個線程去執行不同的任務34 //此處為工作的內容,不便公開!

35

36

37 } catch(Exception e) {38 log.error("Exception", e);39 }40 }41

42 public staticObject getBean(Class beanName) {43 return context != null ? context.getBean(beanName) : null;44 }45 }

6)UdpServer.java

1 packagecom.example.demo.init;2

3 importcom.example.demo.handle.UdpServerHandler;4 importio.netty.bootstrap.Bootstrap;5 importio.netty.channel.ChannelOption;6 importio.netty.channel.EventLoopGroup;7 importio.netty.channel.nio.NioEventLoopGroup;8 importio.netty.channel.socket.nio.NioDatagramChannel;9 importorg.slf4j.Logger;10 importorg.slf4j.LoggerFactory;11 importorg.springframework.scheduling.annotation.Async;12 importorg.springframework.stereotype.Component;13

14 /**

15 * server服務器16 * Created by wj on 2017/8/30.17 */

18 @Component19 public classUdpServer {20

21 private static final Logger log= LoggerFactory.getLogger(UdpServer.class);22

23 //private static final int PORT = Integer.parseInt(System.getProperty("port", "7686"));

24

25 @Async("myTaskAsyncPool")26 public void run(intudpReceivePort) {27

28 EventLoopGroup group = newNioEventLoopGroup();29 log.info("Server start! Udp Receive msg Port:" +udpReceivePort );30

31 try{32 Bootstrap b = newBootstrap();33 b.group(group)34 .channel(NioDatagramChannel.class)35 .option(ChannelOption.SO_BROADCAST, true)36 .handler(newUdpServerHandler());37

38 b.bind(udpReceivePort).sync().channel().closeFuture().await();39 } catch(InterruptedException e) {40 e.printStackTrace();41 } finally{42 group.shutdownGracefully();43 }44 }45

46 }

此處NioDatagramChannel.class采用的是非阻塞的模式接受UDP消息,若是接受的UDP消息少,可以采用阻塞式的方式接受UDP消息。

UdpServer.run()方法使用@Async將該方法定義成異步的,myTaskAsyncPool是自定義的線程池。

7)UdpServerHandler.java

1 packagecom.example.demo.handle;2

3 importcom.example.demo.init.StartupEvent;4 importcom.example.demo.mod.UdpRecord;5 importcom.example.demo.repository.mysql.UdpRepository;6 importcom.example.demo.repository.redis.RedisRepository;7 importio.netty.buffer.Unpooled;8 importio.netty.channel.ChannelHandlerContext;9 importio.netty.channel.SimpleChannelInboundHandler;10 importio.netty.channel.socket.DatagramPacket;11 importio.netty.util.CharsetUtil;12 importorg.apache.commons.lang3.StringUtils;13 importorg.slf4j.Logger;14 importorg.slf4j.LoggerFactory;15

16 importjava.sql.Timestamp;17 importjava.util.Date;18

19 /**

20 * 接受UDP消息,并保存至redis的list鏈表中21 * Created by wj on 2017/8/30.22 *23 */

24

25 public class UdpServerHandler extends SimpleChannelInboundHandler{26

27 private static final Logger log= LoggerFactory.getLogger(UdpServerHandler.class);28

29 //用來計算server接收到多少UDP消息

30 private static int count = 0;31

32 @Override33 public void channelRead0(ChannelHandlerContext ctx, DatagramPacket packet) throwsException {34

35 String receiveMsg =packet.content().toString(CharsetUtil.UTF_8);36

37 log.info("Received UDP Msg:" +receiveMsg);38

39 UdpRecord udpRecord = newUdpRecord();40

41 //判斷接受到的UDP消息是否正確(未實現)

42 if(StringUtils.isNotEmpty(receiveMsg) ){43

44 //計算接收到的UDP消息的數量

45 count++;46

47 //獲取UdpRepository對象,將接收UDP消息的日志保存至mysql中

48 udpRecord.setUdpMsg(receiveMsg);49 udpRecord.setTime(getTime());50 UdpRepository udpRepository = (UdpRepository) StartupEvent.getBean(UdpRepository.class);51 udpRepository.save(udpRecord);52

53 //獲取RedirRepository對象

54 RedisRepository redisRepository = (RedisRepository) StartupEvent.getBean(RedisRepository.class);55 //將獲取到的UDP消息保存至redis的list列表中

56 redisRepository.lpush("udp:msg", receiveMsg);57 redisRepository.setKey("UDPMsgNumber", String.valueOf(count));58

59

60 //在這里可以返回一個UDP消息給對方,告知已接收到UDP消息,但考慮到這是UDP消息,此處可以注釋掉

61 ctx.write(newDatagramPacket(62 Unpooled.copiedBuffer("QOTM: " + "Got UDP Message!", CharsetUtil.UTF_8), packet.sender()));63

64 }else{65 log.error("Received Error UDP Messsage:" +receiveMsg);66 }67 }68

69 @Override70 public voidchannelReadComplete(ChannelHandlerContext ctx) {71 ctx.flush();72 }73

74 @Override75 public voidexceptionCaught(ChannelHandlerContext ctx, Throwable cause) {76 cause.printStackTrace();77 //We don't close the channel because we can keep serving requests.

78 }79

80 publicTimestamp getTime(){81 Date date = newDate();82 Timestamp time = newTimestamp(date.getTime());83 returntime;84 }85

86 }

此處若不借用ApplicationContext.getBean,是無法獲取到RedisRepository對象的。

注:這里是無法使用注解@Autowired來獲取到redisTemplate對象的。

8)repository

RedisRepository.java

1 packagecom.example.demo.repository.redis;2

3 importorg.slf4j.Logger;4 importorg.slf4j.LoggerFactory;5 importorg.springframework.beans.factory.annotation.Autowired;6 importorg.springframework.data.redis.core.RedisTemplate;7 importorg.springframework.stereotype.Service;8

9 /**

10 * 鏈接redis11 * 實現list lpush和rpop12 * Created by wj on 2017/8/30.13 */

14

15

16 @Service17 public classRedisRepository {18 private static final Logger log = LoggerFactory.getLogger(RedisRepository.class);19

20 @Autowired21 private RedisTemplateredisTemplate;22

23 //----------------String-----------------------

24 public voidsetKey(String key,String value){25 redisTemplate.opsForValue().set(key, value);26 }27

28

29 //----------------list----------------------

30 public Long lpush(String key, String val) throwsException{31 log.info("UDP Msg保存至redis中,key:" + key + ",val:" +val);32 returnredisTemplate.opsForList().leftPush(key, val);33 }34

35 public String rpop(String key) throwsException {36 returnredisTemplate.opsForList().rightPop(key);37 }38

39 }

使用springframework框架中的RedisTemplate類去鏈接redis,此處是將收到的UDP消息左保存(lpush)至list鏈表中,然后右邊彈出(rpop)。

UdpRepository.java

1 packagecom.example.demo.repository.mysql;2

3 importcom.example.demo.mod.UdpRecord;4 importorg.springframework.data.jpa.repository.JpaRepository;5

6 /**

7 * Created by wj on 2017/8/31.8 */

9 public interface UdpRepository extends JpaRepository{10

11 }

定義Spring Data JPA接口,鏈接數據庫。

其中

UdpRecord.java

1 packagecom.example.demo.mod;2

3 importjavax.persistence.Entity;4 importjavax.persistence.GeneratedValue;5 importjavax.persistence.Id;6 importjavax.persistence.Table;7 importjava.sql.Timestamp;8

9 /**

10 * Created by wj on 2017/8/31.11 *12 * 用來記錄接收的UDP消息的日志13 */

14 @Entity15 @Table16 public classUdpRecord {17

18 private longid;19 privateString udpMsg;20 privateTimestamp time;21

22 @Id23 @GeneratedValue24 public longgetId() {25 returnid;26 }27

28 public void setId(longid) {29 this.id =id;30 }31

32 publicString getUdpMsg() {33 returnudpMsg;34 }35

36 public voidsetUdpMsg(String udpMsg) {37 this.udpMsg =udpMsg;38 }39

40 publicTimestamp getTime() {41 returntime;42 }43

44 public voidsetTime(Timestamp time) {45 this.time =time;46 }47 }

注解@Entity和@Table辨明這是一個實體類表格 ,其中的@Id和@GeneratedValue表明id是key值并且是自動遞增的。

9)線程池的相關信息

TaskExecutePool.java

1 packagecom.example.demo.thread;2

3 importcom.example.demo.init.SysConfig;4 importorg.springframework.beans.factory.annotation.Autowired;5 importorg.springframework.context.annotation.Bean;6 importorg.springframework.context.annotation.Configuration;7 importorg.springframework.scheduling.annotation.EnableAsync;8 importorg.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;9

10 importjava.util.concurrent.Executor;11 importjava.util.concurrent.ThreadPoolExecutor;12

13 /**

14 * Created by wangjian on 2017/8/29.15 */

16 @Configuration17 @EnableAsync18 public classTaskExecutePool {19

20 @Autowired21 privateSysConfig config;22

23 @Bean24 publicExecutor myTaskAsyncPool() {25 ThreadPoolTaskExecutor executor = newThreadPoolTaskExecutor();26 executor.setCorePoolSize(config.getCorePoolSize());27 executor.setMaxPoolSize(config.getMaxPoolSize());28 executor.setQueueCapacity(config.getQueueCapacity());29 executor.setKeepAliveSeconds(config.getKeepAliveSeconds());30 executor.setThreadNamePrefix("MyExecutor-");31

32 //rejection-policy:當pool已經達到max size的時候,如何處理新任務33 //CALLER_RUNS:不在新線程中執行任務,而是由調用者所在的線程來執行

34 executor.setRejectedExecutionHandler(newThreadPoolExecutor.CallerRunsPolicy());35 executor.initialize();36 returnexecutor;37 }38 }

10)配置文件SysConfig.java

1 packagecom.example.demo.init;2

3 importorg.springframework.boot.context.properties.ConfigurationProperties;4 importorg.springframework.stereotype.Component;5

6 /**

7 * Created by wj on 2017/8/30.8 */

9 @Component10 @ConfigurationProperties(prefix="sysfig")11 public classSysConfig {12 private int UdpReceivePort;//UDP消息接收端口13

14 //線程池信息

15 private intCorePoolSize;16

17 private intMaxPoolSize;18

19 private intKeepAliveSeconds;20

21 private intQueueCapacity;22

23 public intgetCorePoolSize() {24 returnCorePoolSize;25 }26

27 public void setCorePoolSize(intcorePoolSize) {28 CorePoolSize =corePoolSize;29 }30

31 public intgetMaxPoolSize() {32 returnMaxPoolSize;33 }34

35 public void setMaxPoolSize(intmaxPoolSize) {36 MaxPoolSize =maxPoolSize;37 }38

39 public intgetKeepAliveSeconds() {40 returnKeepAliveSeconds;41 }42

43 public void setKeepAliveSeconds(intkeepAliveSeconds) {44 KeepAliveSeconds =keepAliveSeconds;45 }46

47 public intgetQueueCapacity() {48 returnQueueCapacity;49 }50

51 public void setQueueCapacity(intqueueCapacity) {52 QueueCapacity =queueCapacity;53 }54

55 public intgetUdpReceivePort() {56 returnUdpReceivePort;57 }58

59 public void setUdpReceivePort(intudpReceivePort) {60 UdpReceivePort =udpReceivePort;61 }62 }

11)小結

其實發送UDP和接收UDP消息的核心代碼很簡單,只是netty框架將其包裝了。

UDP發送消息是

1 byte[] buffer =...2 InetAddress address = InetAddress.getByName("localhost");3

4 DatagramPacket packet = newDatagramPacket(5 buffer, buffer.length, address, 9999);6 DatagramSocket datagramSocket = newDatagramSocket();7 datagramSocket.send(packet);

udp接收消息是

1 DatagramSocket datagramSocket = new DatagramSocket(9999);2

3 byte[] buffer =....4 DatagramPacket packet = newDatagramPacket(buffer, buffer.length);5

6 datagramSocket.receive(packet);

看起來是不是很簡單???

12)源代碼下載地址

這里只公布了一個框架,其他很多部分由于涉及到了工作內容不便公布。

有需要的同學可以自行下載對其代碼進行更改。

總結

以上是生活随笔為你收集整理的mysql udp服务器_netty学习:UDP服务器与Spring整合(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

超碰久热| 亚洲欧洲xxxx | 懂色av一区二区三区蜜臀 | 成人影音在线 | 午夜精品久久久久久久久久久久久久 | 色婷婷综合成人av | 黄色毛片电影 | 久久 地址 | 免费av网站观看 | www成人精品 | 狠狠的操你 | 尤物97国产精品久久精品国产 | 久草91视频 | 欧美激情视频一二区 | 97av视频 | 日本中文乱码卡一卡二新区 | 中文字幕在线看视频国产中文版 | 免费视频久久久 | 国产亚洲精品久久久久久网站 | 97香蕉久久超级碰碰高清版 | 激情五月五月婷婷 | 日韩精品网址 | 亚洲一区二区三区在线看 | 久久精选 | 欧美黄污视频 | 色在线国产 | 在线免费观看一区二区三区 | 国产区第一页 | 在线视频日韩一区 | 成年人免费在线观看网站 | 日韩在线视频一区 | 日韩av影视在线观看 | 在线亚洲精品 | 五月天狠狠操 | 国产精品成人av电影 | 免费高清在线观看电视网站 | 成人在线一区二区三区 | 国产精品久久久毛片 | 波多野结衣在线视频免费观看 | 国产精品区免费视频 | 久久综合久久久久88 | 夜色资源站wwwcom | 五月婷婷综合在线视频 | 久久免费看视频 | 91爱爱电影 | 欧美成人播放 | 久久欧美精品 | 亚洲一级免费电影 | 亚洲国产精品va在线看黑人动漫 | 久久一区精品 | av 一区二区三区四区 | 亚洲欧洲精品一区二区 | 中文字幕之中文字幕 | 在线观看亚洲a | 在线观看你懂的网站 | 成人黄色在线看 | 成人在线黄色电影 | 国产精品一区二 | 国产高清av免费在线观看 | 久久这里只有精品23 | 国产专区第一页 | 国产中文字幕在线免费观看 | 天操夜夜操 | 中文字幕有码在线播放 | 999国产精品视频 | 亚洲最新视频在线播放 | 国产精品短视频 | 日韩在线观看网址 | 久久躁日日躁aaaaxxxx | 五月激情亚洲 | 国产无遮挡又黄又爽馒头漫画 | 久久试看 | 精品99在线 | 99热官网| 色综合久久久久久中文网 | 一级黄色片在线 | 最近最新最好看中文视频 | 99视频久久| 在线免费观看一区二区三区 | 亚洲最新合集 | 国产亚洲精品福利 | 中文字幕美女免费在线 | 中国精品少妇 | 成人免费在线视频观看 | 91视频-88av| 综合在线亚洲 | 高清av免费一区中文字幕 | 亚洲码国产日韩欧美高潮在线播放 | 五月天激情视频在线观看 | 亚洲天天在线日亚洲洲精 | 色七七亚洲影院 | 欧美日韩高清在线观看 | 精品福利在线观看 | 日本色小说视频 | 国产蜜臀av | 久久91久久久久麻豆精品 | 中文字幕精品www乱入免费视频 | 久久这里精品视频 | 人人爽爽人人 | 500部大龄熟乱视频 欧美日本三级 | 国产精品专区一 | 91亚色免费视频 | 中文字幕专区高清在线观看 | 国产精品a成v人在线播放 | www.天天干.com| 91av美女| 成人香蕉视频 | 亚洲精品观看 | 久久99精品国产一区二区三区 | 黄av在线| 国产精品丝袜久久久久久久不卡 | 美女视频网站久久 | 精品久久五月天 | 久久免费激情视频 | 中文字幕在线观看三区 | 欧美激情综合五月色丁香 | 色网站国产精品 | 韩国在线一区二区 | 黄色一区二区在线观看 | 天堂va在线高清一区 | 色播五月激情五月 | 91精品国产综合久久婷婷香蕉 | 国产理伦在线 | 91精品国产92久久久久 | 国内精品久久久久久久久久久 | 久久91久久久久麻豆精品 | 欧美高清视频不卡网 | 欧美精品在线视频观看 | 久久久久久久电影 | 国产日韩中文在线 | 美女网站视频一区 | 欧美一级日韩三级 | 国产美女网 | 久久99精品久久久久久清纯直播 | av中文字幕网站 | 欧美日韩激情视频8区 | 久久综合久久伊人 | 黄色免费网站 | 黄色一级免费网站 | 天天艹天天爽 | 91精品国产三级a在线观看 | 午夜狠狠操 | 日韩特黄一级欧美毛片特黄 | av免费播放| 国产手机av| 欧美aa在线观看 | 欧美成人精品在线 | 在线播放一区 | 中文字幕在线观看视频网站 | 国精产品999国精产品视频 | 久久久久99精品成人片三人毛片 | 天天天天色射综合 | 欧美激情综合五月 | 97超碰总站 | 久久激情网站 | 天天躁天天狠天天透 | 久久成人国产精品入口 | 久久久在线免费观看 | 午夜视频免费 | 日韩av免费大片 | 在线成人小视频 | 国产免费黄视频在线观看 | 日韩二区三区在线观看 | 一区二区 精品 | 四虎在线影视 | 婷婷电影在线观看 | 国产日韩在线看 | 六月丁香在线观看 | 91 中文字幕 | 亚洲六月丁香色婷婷综合久久 | 大型av综合网站 | 天天玩天天干天天操 | 日韩在观看线 | 久久久久久麻豆 | 久久综合欧美精品亚洲一区 | 特级大胆西西4444www | 91精品资源| 国产精品久久久久久吹潮天美传媒 | 国产成人精品久久亚洲高清不卡 | 日本久久久亚洲精品 | 国产视频一区精品 | 亚洲无在线 | 天天爽夜夜爽人人爽一区二区 | 国产中文字幕在线视频 | 亚洲成人精品久久久 | 91.精品高清在线观看 | av丝袜在线| 国产精品亚洲片在线播放 | 玖玖玖影院 | 日韩av成人| 欧洲视频一区 | 久久久91精品国产一区二区三区 | 久久视频这里有久久精品视频11 | 亚洲国产免费 | 日日操日日 | 亚洲精品乱码久久久久久按摩 | 五月天激情综合网 | 中文字幕久久亚洲 | av大片免费看 | 四虎在线免费观看视频 | 91在线色 | 欧美日韩啪啪 | 天天色天天草天天射 | 99久久激情视频 | 又黄又网站 | 欧美在线资源 | 天天操·夜夜操 | 91精品在线观看视频 | 国产视频一二三 | 久久久亚洲影院 | 菠萝菠萝在线精品视频 | 欧美欧美 | 国产一区二区三区在线 | 尤物一区二区三区 | 色大片免费看 | 日一日干一干 | 国产剧情一区二区在线观看 | 三级黄色在线 | 久久这里只有精品视频99 | 国产在线资源 | 久久久99精品免费观看app | 精品福利片 | 二区三区中文字幕 | www.五月天婷婷 | 免费在线国产精品 | 97在线看| 中文av在线播放 | 高清一区二区三区 | 亚洲狠狠婷婷综合久久久 | 亚洲九九精品 | 狠狠色丁香婷婷综合视频 | 亚洲国产中文在线 | 久久久 精品 | 国语精品久久 | 青草草在线| 在线观看亚洲专区 | 久久精品这里精品 | 色欧美成人精品a∨在线观看 | 91高清在线看 | 午夜电影中文字幕 | 五月天婷婷在线观看视频 | 四虎影视www | 亚洲精品午夜aaa久久久 | 欧美亚洲国产精品久久高清浪潮 | 久久超级碰 | 成人免费亚洲 | 中文字幕在线观看一区二区三区 | 日批视频国产 | 久久爱992xxoo| 欧美网站黄色 | www一起操| av福利资源| 精品1区2区3区 | 国产美女精品视频免费观看 | 中国精品少妇 | 日韩中文三级 | 国产大片免费久久 | 欧美日韩高清一区二区 | 中文字幕国产一区 | 欧美无极色| 精品国产乱码久久久久久1区二区 | 久草在线高清 | 日韩一区二区三区高清在线观看 | 欧美激情第八页 | 在线播放精品一区二区三区 | 日韩在线免费 | 日韩激情影院 | 九色91在线视频 | 精品一区二区在线播放 | 亚洲成人999 | 在线成人av | 99se视频在线观看 | 久草在线 | 国产精品中文字幕在线观看 | 亚洲第一成网站 | 最新影院 | 国产中文字幕在线看 | 一本一道久久a久久综合蜜桃 | 日韩成人看片 | 日日草天天草 | 日韩在线视频播放 | 国产91免费在线 | 网站在线观看你们懂的 | 97在线免费观看 | av电影中文| 久久久久久久久久久免费av | 国产不卡一二三区 | 天天色天天骑天天射 | 99视频在线观看免费 | 久久综合色一综合色88 | 国产精品久久三 | 国产精品久久久久久一区二区 | 少妇搡bbbb搡bbb搡aa | 天天干天天操天天操 | 亚洲婷婷免费 | 欧美日韩免费观看一区二区三区 | 婷婷六月激情 | 久久精品成人热国产成 | 丰满少妇在线观看资源站 | 亚洲国产丝袜在线观看 | 久草视频网| 精品国产乱码久久 | 在线国产视频 | 99精品视频免费在线观看 | 国产精品久久久久久久久久久免费 | 婷婷伊人五月 | 国产福利专区 | 久久综合在线 | 国产精品露脸在线 | 色综合婷婷久久 | 在线视频免费观看 | 国产一二区在线观看 | 美女视频黄是免费的 | 精品国产免费人成在线观看 | 麻花豆传媒mv在线观看网站 | 99九九免费视频 | 成人精品一区二区三区电影免费 | 色婷婷综合久久久 | 69视频在线| a天堂最新版中文在线地址 久久99久久精品国产 | 美女福利视频在线 | 久久久精品久久 | 91系列在线 | 日韩在线免费看 | 欧美久久影院 | 成人黄色电影视频 | 亚洲欧美偷拍另类 | 免费福利在线观看 | 天天综合入口 | av导航福利| 激情视频一区二区 | 中文字幕一区二区三区四区视频 | 国产中文在线观看 | 五月视频| 毛片永久新网址首页 | 涩涩网站在线播放 | 中文字幕日韩电影 | 欧美久久电影 | 日本在线观看中文字幕无线观看 | 欧美精品久久久久久久久久 | 国产69精品久久久久久久久久 | 欧美成人黄色 | 欧美孕妇视频 | 国内精品久久久久影院优 | 中文字幕在线日本 | 成人免费视频免费观看 | 日韩欧美大片免费观看 | 91精品国产一区二区三区 | 日韩午夜在线 | 亚洲三级av | 黄色aa久久 | 婷婷干五月 | 亚洲桃花综合 | 日日操日日插 | 日日夜夜精品免费 | 久久久久久麻豆 | 成片免费观看视频大全 | 成人久久视频 | 999亚洲国产996395 | 91视频在线观看免费 | 久久精品小视频 | 欧美一级艳片视频免费观看 | 亚州五月| 综合久久久久久久 | 91精品国产91久久久久久三级 | 亚洲国产高清在线 | 国产精品99精品久久免费 | 天天爽夜夜操 | 色网av| 国产精品porn | 精品一区 精品二区 | 亚洲欧美日韩精品久久久 | 久久久免费毛片 | 亚洲午夜精品久久久 | 日韩在线网址 | 国产做爰视频 | 人人盈棋牌| 免费三级黄 | 玖玖爱免费视频 | 91成人网在线观看 | a级片在线播放 | 天天躁日日躁狠狠躁av中文 | 亚洲精品久久久久中文字幕m男 | 久久久久夜色 | 8x成人免费视频 | 免费久久网站 | 婷婷丁香激情五月 | 激情网婷婷 | av在线播放国产 | 婷婷久久综合九色综合 | 在线观看的a站 | 精品国产一区二区久久 | 亚洲黄色av一区 | 日本三级吹潮在线 | 日本中文字幕网 | 国产视频在线免费观看 | 一区二区三区精品在线 | av高清免费在线 | 久久婷婷一区二区三区 | 亚洲免费小视频 | 黄色成人在线观看 | 综合久久网 | 免费看成人片 | 久久亚洲综合国产精品99麻豆的功能介绍 | 中文字幕日韩国产 | 99999精品 | 日韩理论在线 | 国内精品久久久久久久久 | 麻豆视频免费在线 | av大全在线播放 | 又色又爽又激情的59视频 | 久久成人麻豆午夜电影 | 四虎永久免费 | 欧美一级特黄高清视频 | 999久久久免费视频 午夜国产在线观看 | 在线观看免费成人 | 97精品国自产拍在线观看 | 日产中文字幕 | 亚洲第一色 | 色婷婷99| 色资源二区在线视频 | 96视频免费在线观看 | 99久久精品免费看国产麻豆 | 亚洲国产网站 | 日韩成人精品 | 九九免费在线观看视频 | 三级av在线 | 亚洲人天堂 | 天堂av色婷婷一区二区三区 | 亚洲一级黄色大片 | 亚洲成人欧美 | 婷婷激情小说网 | 韩国av免费观看 | 在线免费精品视频 | 欧美a视频 | 久久a视频| 视频在线观看入口黄最新永久免费国产 | 成人国产一区二区 | 欧美精品久久久久a | 亚洲欧美观看 | 国产在线观看免费观看 | 99精品视频在线看 | 激情片av| 成年人免费在线看 | 欧美视频www | 天天射成人 | 成人黄大片视频在线观看 | 亚洲最新在线 | 国产精品亚洲综合久久 | 日本午夜在线观看 | 狠狠躁日日躁狂躁夜夜躁 | 成人黄色大片在线免费观看 | 毛片888 | 日韩精品一区二区久久 | 欧美高清成人 | 国产成人黄色av | 久久久久www | 中文字幕在线专区 | 超碰97在线资源站 | 又湿又紧又大又爽a视频国产 | 亚洲成人高清在线 | 亚洲性少妇性猛交wwww乱大交 | 激情欧美一区二区三区免费看 | 手机成人免费视频 | 中文字幕日本在线 | 国产1级毛片 | 久草免费资源 | 精品一区二区免费在线观看 | 免费亚洲精品视频 | 国产精品免费一区二区三区在线观看 | 久久夜夜爽 | 亚洲美女精品视频 | www.色婷婷 | 92中文资源在线 | 四虎国产精 | 国产专区在线 | 麻豆免费视频网站 | 婷婷免费视频 | 国产精品一区二区三区免费看 | 亚洲一级片在线看 | 欧美一级特黄aaaaaa大片在线观看 | 永久免费精品视频网站 | 日韩区欧美久久久无人区 | 丁香视频全集免费观看 | 欧美日韩精品免费观看 | 国产福利91精品一区二区三区 | 99久久精品久久久久久动态片 | 99在线精品观看 | 美女视频黄是免费的 | 人人干人人添 | av丝袜在线| 久久无码av一区二区三区电影网 | 国产99久久精品一区二区永久免费 | 婷婷色5月 | 日韩精品一区二区久久 | 欧美aaa大片 | 99视频 | 国产美女精品 | 日韩av电影中文字幕 | 午夜影视av | 欧美成人xxx | 综合婷婷丁香 | 久久桃花网 | 久久手机看片 | 在线播放91 | 久久精品国产v日韩v亚洲 | 国产黄在线免费观看 | 视频国产在线观看18 | 亚洲欧美国产精品久久久久 | 丁香六月中文字幕 | 日本xxxx裸体xxxx17 | 韩国精品在线观看 | 伊人五月天.com | 国产欧美精品一区二区三区四区 | 五月婷婷一区 | 国产69精品久久久久久久久久 | 国产精品原创av片国产免费 | 婷婷在线视频观看 | 中文有码在线 | 免费电影播放 | 国产黄色免费观看 | 久久久免费看视频 | 亚州精品成人 | 国产 一区二区三区 在线 | 中文字幕视频三区 | 国产v在线 | 国产美女精品视频 | 日本精品视频免费观看 | 亚洲精品午夜久久久 | 久久九九免费 | 国产不卡精品 | 国产精品免费观看在线 | 欧洲精品码一区二区三区免费看 | 一级片免费视频 | 一区二区精品 | japanese黑人亚洲人4k | 在线精品播放 | 四虎视频| 国产精品精品久久久久久 | 久久99热这里只有精品国产 | 久久香蕉影视 | 1区2区3区在线观看 三级动图 | 中文字幕在线视频国产 | 中文字幕在线观看网站 | 久久久久免费 | www.伊人网 | 99视频黄| 欧美a级片免费看 | 丁香婷婷色月天 | 日韩精品一区二区三区免费观看视频 | 日韩 在线a | 亚洲国产日韩欧美 | 人人爽人人舔 | 久草观看 | 懂色av一区二区在线播放 | 欧美成人日韩 | 久草在线观看资源 | 日日夜夜人人精品 | 激情小说 五月 | 亚洲国产精品va在线看黑人动漫 | 精品免费一区二区三区 | 日本中文字幕在线免费观看 | 美女在线黄| 久久精品国产精品 | 欧洲一区二区三区精品 | www.久热 | 天天草天天草 | 青青草国产精品 | 一级黄网 | 久久久久免费网 | 六月丁香婷| 日本爱爱免费视频 | 亚洲综合色站 | 色婷丁香 | 99精品国自产在线 | 狠狠干夜夜操天天爽 | 成人精品一区二区三区中文字幕 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 国产xxxxx在线观看 | 日韩免费看视频 | 一区二区三区四区在线免费观看 | 国产精品亚州 | 国产精品久久伊人 | 久久免费视频在线观看6 | 看片一区二区三区 | 99久久精品免费看国产麻豆 | 美女久久视频 | 一区二区三高清 | 日本精品视频一区二区 | 久久久久99精品国产片 | 亚洲综合在线一区二区三区 | 五月天com | 久久久久黄 | 欧美国产日韩激情 | 天天天操天天天干 | 天天av天天| 久久老司机精品视频 | 免费色黄 | 六月丁香激情网 | 草樱av| 国产精品区二区三区日本 | 精品国产一区二区三区久久影院 | 伊人va| 黄色网址中文字幕 | 国产黄色精品在线 | 97色在线 | 成人久久久久 | 一区二区三区动漫 | 91视频这里只有精品 | 97超碰人人爱| 日韩综合色 | 中文字幕免费在线 | 欧美另类xxx | 亚洲美女视频在线观看 | 天天爽天天爽天天爽 | 国产99色| 91精品综合在线观看 | 91最新网址 | 在线成人性视频 | 怡红院av| 97电影在线观看 | 天天综合视频在线观看 | 中文字幕一区二区三区乱码不卡 | 999精品在线 | 91精品久久久久久综合乱菊 | 精品国产黄色片 | 久久黄色影院 | 超碰免费97 | 久热超碰 | 激情av网 | 欧美与欧洲交xxxx免费观看 | 亚洲成aⅴ人片久久青草影院 | 日本久久91 | 亚洲激情电影在线 | 日韩综合一区二区三区 | 日韩在线观看a | 国产精品破处视频 | 日韩欧美在线观看一区二区 | 久久精品96 | 国产69精品久久久久久久久久 | av中文字幕日韩 | 在线视频第一页 | 中文字幕丝袜制服 | www五月婷婷 | 亚洲综合色婷婷 | 国产精品成人免费精品自在线观看 | 成人中心免费视频 | 狠狠干成人综合网 | 婷婷丁香激情综合 | 天天色天天射综合网 | 久久国产区 | 精品一区二区三区四区在线 | 四虎在线免费视频 | 日本中文字幕在线免费观看 | 国产一区二区在线免费视频 | 欧美黄色成人 | 91免费在线播放 | 欧美少妇影院 | 色综合激情久久 | 麻豆国产视频 | 免费色网站 | 婷婷丁香av | 精品国产乱码一区二区三区在线 | 欧美一区二区三区在线播放 | 最近更新的中文字幕 | av日韩在线网站 | 婷婷在线不卡 | 成人av高清 | 91亚洲精品久久久久图片蜜桃 | 日韩精品不卡在线观看 | 久久99国产综合精品免费 | 亚洲精品国产精品国自产 | 人人爽人人爽av | 免费在线观看中文字幕 | 国产午夜精品一区二区三区欧美 | 欧美综合干 | 欧美成人理伦片 | 欧美性生活免费看 | 91九色蝌蚪在线 | 国产中文字幕91 | 麻豆免费视频 | 九九日韩| 在线看的毛片 | 成人h视频在线播放 | 国产无遮挡又黄又爽馒头漫画 | 色妞色视频一区二区三区四区 | 97香蕉超级碰碰久久免费软件 | 伊人电影在线观看 | 99麻豆视频 | 天天添夜夜操 | 欧美一区,二区 | 亚洲国产精品视频在线观看 | 日韩精品久久久久久久电影竹菊 | 丰满少妇高潮在线观看 | 午夜精品久久久久久久99无限制 | 九九热国产视频 | 久草在线高清视频 | 免费看片成年人 | 欧美一区在线观看视频 | 69精品视频在线观看 | 人人草在线视频 | 日韩在线观看视频网站 | 免费看片网站91 | 日韩有码在线播放 | 免费精品 | 九色琪琪久久综合网天天 | 91久久精品一区二区二区 | 国产亚洲视频在线观看 | 欧美一区三区四区 | 91在线文字幕 | 国产va在线观看免费 | 久久久国产精品成人免费 | 国产高清视频在线播放一区 | 久草爱视频| 91精品国产九九九久久久亚洲 | 亚洲欧洲中文日韩久久av乱码 | 久久在线一区 | 中文字幕免费高清av | 成人一级电影在线观看 | 91亚洲精品久久久久图片蜜桃 | 91视频国产高清 | 国产一级在线观看视频 | 992tv在线观看网站 | 在线国产黄色 | 一本色道久久精品 | 婷婷色网| 中文字幕在线观看免费高清电影 | 国产成人精品免高潮在线观看 | 最新午夜电影 | 国产精品四虎 | av资源在线观看 | 国产高清久久 | 在线小视频你懂得 | 国产在线观 | 欧美日韩另类在线观看 | 国产成人精品av | 少妇按摩av| www.狠狠| 国产一区国产精品 | 日韩精品第1页 | 探花视频在线观看免费 | 丁香激情婷婷 | 国产精品电影在线 | 99精品视频中文字幕 | 91视频大全| 久久久国产一区二区 | 人人射人人澡 | 最新真实国产在线视频 | 国产成人精品一区二区三区在线 | 久草精品视频在线看网站免费 | 免费91麻豆精品国产自产在线观看 | 国产资源在线播放 | 69国产在线观看 | 深爱激情婷婷网 | 91av片| 国产v视频 | 美女久久久久 | 国内小视频 | 一区在线观看 | 日韩在线电影一区二区 | 免费日韩视 | 久久免费精品 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 欧美在线不卡一区 | 在线免费黄网站 | 99色在线视频 | 大胆欧美gogo免费视频一二区 | 久久不卡电影 | 国产一级片不卡 | 亚洲精品午夜久久久久久久 | 欧美精品一区二区在线观看 | 日韩电影一区二区三区在线观看 | 在线观看日韩精品视频 | 在线中文字幕视频 | av成人在线播放 | 国产高清在线a视频大全 | 99久久精品免费看国产免费软件 | 久久久久久综合 | 999抗病毒口服液 | 九九色在线 | 日韩成人免费在线电影 | 日韩在线视频看看 | 久久人人添人人爽添人人88v | 精品久久美女 | 国产视频一二区 | 免费视频久久久 | 欧美日韩一级久久久久久免费看 | 日韩动态视频 | 欧美日韩精品在线观看视频 | 国产一区精品在线 | 免费观看特级毛片 | 国产视频一| 69视频永久免费观看 | 色噜噜狠狠狠狠色综合久不 | 五月婷在线观看 | 天堂av在线免费观看 | 久久久久国产a免费观看rela | 精品一区三区 | 国产精品成人国产乱一区 | 中文字幕在线看 | 综合久久2023 | 爱av在线网| 国产精品地址 | 国产美腿白丝袜足在线av | 日本高清免费中文字幕 | 在线精品国产 | 欧美日韩在线第一页 | 综合久久久久久久久 | 日韩精品视频免费专区在线播放 | www日| 91精品夜夜 | 日韩剧| 日日夜夜添| 久99久精品视频免费观看 | 香蕉久久久久久av成人 | 四虎伊人 | 中文字幕在线观看网址 | 成人黄色大片在线观看 | 亚洲激情在线观看 | 丁香激情综合久久伊人久久 | 婷婷www| 天天视频色 | 韩国一区在线 | 久久色网站 | 天天躁日日躁狠狠躁 | 伊人午夜视频 | 欧美一级专区免费大片 | 狠狠操狠狠插 | 国产精品高清一区二区三区 | 久久综合久久综合这里只有精品 | 91av在线视频播放 | 国产中文字幕在线视频 | 色婷婷a | 日本精品久久久久 | 欧美精品一区二区性色 | 久久精国产 | 99精品久久精品一区二区 | 亚洲国产中文字幕 | 欧美国产亚洲精品久久久8v | 首页av在线 | 91在线视频一区 | 五月天亚洲激情 | 成人在线观看影院 | 婷婷中文字幕在线观看 | 国产精品成人久久久 | 国产精品久久久久久久久久久久久 | 亚洲码国产日韩欧美高潮在线播放 | 亚洲视频免费 | 香蕉视频在线看 | 插综合网 | 久久精品人人做人人综合老师 | 天天干天天干天天干天天干天天干天天干 | 在线观看免费福利 | 99视频国产精品 | 91九色蝌蚪视频 | 亚洲一级特黄 | 四虎永久精品在线 | 欧美一级片在线播放 | 在线视频国产区 | 欧美在一区 | 欧美在线视频一区二区 | 一区二区三区影院 | 一区二区久久 | 在线电影播放 | wwwwwww色| 中文字幕电影一区 | 亚洲国产精品久久久久婷婷884 | 久久久亚洲国产精品麻豆综合天堂 | 久草在线看片 | 一级精品视频在线观看宜春院 | 天天插天天干天天操 | 久草在线资源视频 | 久久av高清 | 国产99久久久久 | 91香蕉久久 | 99精品国产亚洲 | 韩日精品中文字幕 | 免费在线播放黄色 | 久草在线观看视频免费 | 一区二区视频免费在线观看 | 日韩小视频网站 | 精品一区二区在线看 | 亚洲免费av观看 | 97超在线| 久久午夜羞羞影院 | 人成电影网 | 日本三级吹潮在线 | 欧美日韩二区在线 | 亚洲精品人人 | 久草在线视频中文 | 91视频啪 | 亚洲国产影院 | 日韩专区中文字幕 | 亚洲成a人片在线www | 操高跟美女 | 日韩系列在线 | 色婷婷视频网 | 99视频精品在线 | 视频一区二区免费 | 丁香六月婷婷综合 | 国产欧美精品在线观看 | 精品久久久久国产免费第一页 | 911在线| 在线日韩精品视频 | 狠狠操天天操 | 日本久久久久久久久久久 | 日本午夜免费福利视频 | 欧美午夜激情网 | 夜夜视频欧洲 | 免费在线观看成人小视频 | 天天色天天爱天天射综合 | 九九在线高清精品视频 | 日本黄色一级电影 | 狠狠色丁香婷婷综合久小说久 | 中文字幕免费播放 | 成人综合婷婷国产精品久久免费 | 亚洲精品国产精品国自产观看 | 五月天综合网站 | 久久久久成 | 久久久久在线视频 | 久久精品国产v日韩v亚洲 | 青青久草在线视频 | freejavvideo日本免费| 一级黄色片在线观看 | 成年人黄色av | 午夜精品视频一区二区三区在线看 | 丁香五月亚洲综合在线 | 欧美精品久 | 午夜婷婷网 | 国产精品乱码久久久久 | 国产黄在线播放 | 久久久久久久久久久久99 | 亚洲精品国产成人av在线 | 日韩有码在线观看视频 | 国产人成在线视频 | 丁香久久| 成人黄色大片在线免费观看 | 亚洲人毛片 | 丁香婷婷久久久综合精品国产 | 成人一级片在线观看 | 日韩激情精品 | 2017狠狠干| 日韩中文字幕免费在线观看 | 国产精品久久久久久婷婷天堂 | 久久亚洲私人国产精品va | av综合网址 | 在线视频亚洲 | 成人黄色毛片视频 | 中文字幕欧美三区 | 8x成人在线 | 欧美色伊人 | 国产精品一二 | 久久免费电影网 | 国产精选在线 | 婷婷丁香激情五月 | 在线观看网站黄 | 亚洲人成人在线 | 51精品国自产在线 | 蜜臀av性久久久久蜜臀av | 亚洲免费国产视频 | 久久久久激情视频 | 在线观看视频一区二区三区 | 久久在线一区 | 国产69久久精品成人看 | 免费日韩 精品中文字幕视频在线 | 久久久久免费精品视频 | 97爱| 精品嫩模福利一区二区蜜臀 | 久久久久久久久久久黄色 | 高清免费在线视频 | 久草久热| 日韩在线资源 | 91久久精品日日躁夜夜躁国产 | 人人添人人 | 美女免费视频网站 | 在线播放 日韩专区 | 日韩sese | 色噜噜在线观看 | 久草线 | 久久手机视频 | 麻豆一级视频 | 成人av电影在线 | 免费精品 | 中文字幕丝袜美腿 | www.午夜 | 久久全国免费视频 | 韩国在线一区二区 | 欧美久草网 | 国产一区二区手机在线观看 | 成人在线观看免费视频 | 免费黄a大片 | 99久久婷婷| 国产专区精品视频 | 99热这里只有精品在线观看 | 国产色拍| 国产黄视频在线观看 | 首页av在线 | 日韩三级视频在线看 |