精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一種通過Udp進行無確認Ip的雙向的通信

網絡 通信技術
udp是一種不可靠的通信,但是有些時候還是會有使用。今天分享一個示例:主體邏輯,一個端口廣播地址,接收到ip地址數據后,其他端口基于這個ip進行bind綁定,最后通信,這樣可以保證我們后續繼續增加端口交互時候不需要關注ip地址綁定的問題。

前言

udp是一種不可靠的通信,但是有些時候還是會有使用。今天分享一個示例:主體邏輯,一個端口廣播地址,接收到ip地址數據后,其他端口基于這個ip進行bind綁定,最后通信,這樣可以保證我們后續繼續增加端口交互時候不需要關注ip地址綁定的問題。

主要原理介紹

  • 低通信頻率端口進行服務端IP信息udp廣播,接收端是不固定IP監聽,監聽主機任意IP地址的特定端口
  • 接收到廣播通道的ip地址后,與特定IP、port建立tcp或者udp雙向高頻率通信。

下圖是基于 UDP 的 Socket 函數調用過程:

只有接收的時候需要bind ip和端口

圖片

socket 監聽所有ip 特定端口代碼:

#define PORT 6000
bzero(&adr_inet, sizeof(adr_inet));
adr_inet.sin_family = AF_INET;
adr_inet.sin_addr.s_addr = htonl(INADDR_ANY);
adr_inet.sin_port = htons(port);
ret = bind(cfd, (struct sockaddr *)&addr, sizeof(addr));

socket綁定的ip為INADDR_ANY 的說明:

socket INADDR_ANY 監聽0.0.0.0地址 socket只綁定端口讓路由表決定傳到哪個ip

其中INADDR_ANY就是指定地址為0.0.0.0的地址,這個地址事實上表示不確定地址,或“所有地址”、“任意地址”。 如果指定ip地址為通配地址(INADDR_ANY),那么內核將等到套接字已連接(TCP)或已在套接字上發出數據報時才選擇一個本地IP地址。 一般情況下,如果你要建立網絡服務器,則你要通知服務器操作系統:請在某地址 xxx.xxx.xxx.xxx上的某端口 yyyy上進行偵聽,并且把偵聽到的數據包發送給我。這個過程,你是通過bind()系統調用完成的。——也就是說,你的程序要綁定服務器的某地址,或者說:把服務器的某地址上的某端口占為已用。服務器操作系統可以給你這個指定的地址,也可以不給你。

如果你的服務器有多個網卡,而你的服務(不管是在udp端口上偵聽,還是在tcp端口上偵聽),出于某種原因:可能是你的服務器操作系統可能隨時增減IP地址,也有可能是為了省去確定服務器上有什么網絡端口(網卡)的麻煩 —— 可以要在調用bind()的時候,告訴操作系統:“我需要在 yyyy 端口上偵聽,所以發送到服務器的這個端口,不管是哪個網卡/哪個IP地址接收到的數據,都是我處理的。”這時候,服務器則在0.0.0.0這個地址上進行偵聽。無論連接哪個ip都可以連上的,只要是往這個端口發送的所有ip都能連上。

示例代碼:

data_send.c 在端口9001進行ip地址的udp廣播以及讀取終端數據廣播到7000端口

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <errno.h>
#include <pthread.h>
#include <signal.h>

#define IP "127.0.0.1"
#define
#define

// gcc data_send.c -o data_send -pthread

int cfd = -1;
//接收線程函數
void *receive(void *pth_arg)
{
int ret = 0;
char name_data[3] = {0};
struct sockaddr_in addr0 = {0};
int addr0_size = sizeof(addr0);
//從對端ip和端口號中接收消息,指定addr0用于存放消息
while (1)
{
bzero(name_data, sizeof(name_data));
ret = recvfrom(cfd, name_data, sizeof(name_data), 0, (struct sockaddr *)&addr0, &addr0_size);
if (-1 == ret)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "recv failed", strerror(errno));
exit(-1);
}
else if (ret > 0)
{
printf("\nname = %s ", name_data); //打印對方的消息和端口號
printf("ip %s,port %d \n", inet_ntoa(addr0.sin_addr), ntohs(addr0.sin_port));
}
}
}
void *data_send(void *pth_arg)
{
int ret = 0;
char data[] = "IP address";
struct sockaddr_in addr0 = {0};
addr0.sin_family = AF_INET; //設置tcp協議族
addr0.sin_port = htons(DATA_PORT); //設置端口號
addr0.sin_addr.s_addr = htonl(INADDR_ANY); //設置ip地址
//發送消息
while (1)
{
ret = sendto(cfd, (void *)data, sizeof(data), 0, (struct sockaddr *)&addr0, sizeof(addr0));
sleep(1);
if (-1 == ret)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "sendto failed", strerror(errno));
exit(-1);
}
}
}

int main()
{
int ret = -1;
//創建tcp/ip協議族,指定通信方式為無鏈接不可靠的通信
cfd = socket(AF_INET, SOCK_DGRAM, 0);
if (-1 == cfd)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "socket failed", strerror(errno));
exit(-1);
}

//進行端口號和ip的綁定
struct sockaddr_in addr;
addr.sin_family = AF_INET; //設置tcp協議族
addr.sin_port = htons(PORT); //設置端口號
addr.sin_addr.s_addr = inet_addr(IP); //設置ip地址
ret = bind(cfd, (struct sockaddr *)&addr, sizeof(addr));

if (-1 == ret)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "bind failed", strerror(errno));
exit(-1);
}

//創建線程函數,用于處理數據接收
pthread_t id,data_send_id;
ret = pthread_create(&id, NULL, receive, NULL);
if (-1 == ret)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "pthread_create failed", strerror(errno));
exit(-1);
}
// pthread_join(id,NULL);
ret = pthread_create(&data_send_id, NULL, data_send, NULL);
if (-1 == ret)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "pthread_create failed", strerror(errno));
exit(-1);
}

struct sockaddr_in addr0;
addr0.sin_family = AF_INET; //設置tcp協議族
addr0.sin_port = htons(7000); //設置端口號
addr0.sin_addr.s_addr = inet_addr(IP); //設置ip地址

char name_send[3] = {0};
//發送消息
while (1)
{
bzero(name_send, sizeof(name_send));
printf("send name:");
scanf("%s", name_send);

//發送消息時需要綁定對方的ip和端口號
ret = sendto(cfd, (void *)name_send, sizeof(name_send), 0, (struct sockaddr *)&addr0, sizeof(addr0));
if (-1 == ret)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "accept failed", strerror(errno));
exit(-1);
}
}
return 0;
}

data_process.c 進行端口9001的ip數據的捕獲,當接收到ip數據后,綁定廣播的ip地址進行數據的收發,這里用的是udp接收大家也可以試試tcp交互。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <errno.h>
#include <pthread.h>
#include <signal.h>

#define IP "127.0.0.1"
#define
#define
// typedef uint32_t in_addr_t;

// gcc data_process.c -o data_process -pthread
int cfd = -1,data_fd = -1;
uint32_t receive_ip = -1;
void *receive(void *pth_arg)
{
int ret = 0;
char name_data[3] = {0};
struct sockaddr_in addr0 = {0};
int addr0_size = sizeof(addr0);
while (1)
{
printf("receive:");
bzero(name_data, sizeof(name_data));
ret = recvfrom(cfd, name_data, sizeof(name_data), 0, (struct sockaddr *)&addr0, &addr0_size);
if (-1 == ret)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "recv failed", strerror(errno));
exit(-1);
}
else if (ret > 0)
{
printf("\nname = %s ", name_data);
printf("ip %s,port %d \n", inet_ntoa(addr0.sin_addr), ntohs(addr0.sin_port));
}
}
}
void *data_receive(void *pth_arg)
{
int ret = 0;
char name_data[10] = {0};
struct sockaddr_in addr0 = {0};
int addr0_size = sizeof(addr0);
while (1)
{
bzero(name_data, sizeof(name_data));
ret = recvfrom(data_fd, name_data, sizeof(name_data), 0, (struct sockaddr *)&addr0, &addr0_size);
if (-1 == ret)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "recv failed", strerror(errno));
exit(-1);
}
else if (ret > 0)
{
printf("\nname = %s ", name_data);
printf("ip %s,port %d \n", inet_ntoa(addr0.sin_addr), ntohs(addr0.sin_port));
receive_ip = addr0.sin_addr.s_addr;
char buf[20] = { 0 };
inet_ntop(AF_INET, &receive_ip, buf, sizeof(buf));
printf("receive_ip ip = %s ", buf);
// printf("receive_ip ip = %s ", inet_ntop(receive_ip));
break;
}
}
}
int main()
{
int ret = -1;
data_fd = socket(AF_INET, SOCK_DGRAM, 0);
if (-1 == data_fd)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "socket failed", strerror(errno));
exit(-1);
}

struct sockaddr_in addr;
addr.sin_family = AF_INET; //設置tcp協議族
addr.sin_port = htons(DATA_PORT); //設置端口號
addr.sin_addr.s_addr = inet_addr(IP); //設置ip地址
ret = bind(data_fd, (struct sockaddr *)&addr, sizeof(addr));
if (-1 == ret)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "bind failed", strerror(errno));
exit(-1);
}
pthread_t receive_id;
ret = pthread_create(&receive_id, NULL, data_receive, NULL);
if (-1 == ret)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "pthread_create failed", strerror(errno));
exit(-1);
}
pthread_join(receive_id,NULL);

cfd = socket(AF_INET, SOCK_DGRAM, 0);
if (-1 == cfd)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "socket failed", strerror(errno));
exit(-1);
}

struct sockaddr_in addr1;
addr1.sin_family = AF_INET; //設置tcp協議族
addr1.sin_port = htons(PORT); //設置端口號
addr1.sin_addr.s_addr = receive_ip; //設置ip地址
char buf[20] = { 0 };
inet_ntop(AF_INET, &receive_ip, buf, sizeof(buf));
printf("ip = %s ", buf);

ret = bind(cfd, (struct sockaddr *)&addr1, sizeof(addr1));
if (-1 == ret)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "bind failed", strerror(errno));
exit(-1);
}

pthread_t id;
ret = pthread_create(&id, NULL, receive, NULL);
if (-1 == ret)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "pthread_create failed", strerror(errno));
exit(-1);
}
pthread_join(id,NULL);

struct sockaddr_in addr0;
addr0.sin_family = AF_INET; //設置tcp協議族
addr0.sin_port = htons(6000); //設置端口號
addr0.sin_addr.s_addr = inet_addr(IP); //設置ip地址

char name_send[3] = {0};
while (1)
{
bzero(name_send, sizeof(name_send));
printf("send name:");
scanf("%s", name_send);

ret = sendto(cfd, (void *)name_send, sizeof(name_send), 0, (struct sockaddr *)&addr0, sizeof(addr0));
if (-1 == ret)
{
fprintf(stderr, "%d, %s :%s", __LINE__, "accept failed", strerror(errno));
exit(-1);
}
}
return 0;
}

一個終端捕獲數據,sudo tcpdump -i lo portrange 5000-8000 -vv -XX -nn,另外兩個終端進行數據交互

圖片

結語

這就是我自己的一些udp設計思路的分享。如果大家有更好的想法和需求,也歡迎大家加我好友交流分享哈。

作者:良知猶存,白天努力工作,晚上原創公號號主。公眾號內容除了技術還有些人生感悟,一個認真輸出內容的職場老司機,也是一個技術之外豐富生活的人,攝影、音樂 and 籃球。

責任編輯:武曉燕 來源: 羽林君
相關推薦

2013-12-04 13:34:44

2021-10-26 16:49:34

系統性能定位

2022-07-07 10:33:27

Python姿勢代碼

2022-06-22 09:44:41

Python文件代碼

2020-12-23 10:10:23

Pythonweb代碼

2009-04-11 15:12:24

2020-12-09 10:15:34

Pythonweb代碼

2022-09-22 08:18:28

JavaAssistJboss開源

2023-09-27 14:32:44

2018-02-27 10:36:20

物聯網無線通信應用程序

2022-05-12 11:08:31

PHPJava開發

2018-12-14 14:30:12

安全檢測布式系測試

2012-03-21 09:54:00

Gzip

2011-03-01 09:43:13

MapReduce架構

2022-06-23 07:05:46

跳板機服務器PAM

2017-07-05 14:09:04

系統設計與架構java云計算

2020-07-30 13:00:00

Python面部識別智能

2017-03-13 11:30:39

2021-09-09 10:06:09

鴻蒙HarmonyOS應用

2018-02-08 08:11:41

點贊
收藏

51CTO技術棧公眾號

特一级黄色大片| the porn av| 天堂av2024| 巨乳诱惑日韩免费av| 国产一区二区激情| 日本中文字幕观看| 91www在线| 久久久亚洲高清| 国产精品免费网站| 久久精品美女视频| 青青草原综合久久大伊人精品| 欧美一区二区三区啪啪| 北条麻妃在线视频观看| 免费黄色网页在线观看| 国产成人亚洲综合色影视| 日本久久久久久久久久久| 日日噜噜夜夜狠狠久久波多野| 国产精品xxx在线观看| 欧美日韩一区久久| 日本久久久精品视频| 91精品久久久久久粉嫩| 国产午夜亚洲精品理论片色戒| 亚洲va久久久噜噜噜久久天堂| 精品久久久久久久久久久久久久久久| 女人色偷偷aa久久天堂| 亚洲日韩欧美视频一区| 在线观看一区二区三区四区| 欧美激情福利| 天美av一区二区三区久久| 中文字幕免费一区二区三区| 日韩精品在线观| 国内精品国产三级国产aⅴ久| 日本国产欧美| 欧美日韩中文在线| 精品无码国产一区二区三区av| 日本黄色片在线观看| 久久综合精品国产一区二区三区| 春色成人在线视频| av中文字幕免费| 久久99在线观看| 国产精品免费一区二区三区都可以| 欧美三级午夜理伦| 亚洲午夜91| 欧美男插女视频| 99久久精品久久亚洲精品| 国产影视一区| 伊人久久精品视频| 人妻体内射精一区二区| 日韩精选在线| 日韩精品免费在线| 日本黄色录像片| 北条麻妃一区二区三区在线观看| 日韩一区二区三区在线观看| 日韩不卡的av| 欧美一级大片在线视频| 欧美高清视频一二三区 | 日本高清成人免费播放| 免费无码国产v片在线观看| 理论片午夜视频在线观看| 亚洲成人精品一区| 欧美 日韩 国产 高清| 国产无遮挡裸体视频在线观看| 亚洲第一综合色| 18禁网站免费无遮挡无码中文| a毛片不卡免费看片| 亚洲成av人在线观看| 欧美日韩在线一| 一个人www视频在线免费观看| 欧美视频中文在线看| 91av俱乐部| 久久亚洲精品人成综合网| 欧美日韩不卡一区二区| 中文字幕avav| 久久悠悠精品综合网| 亚洲精品黄网在线观看| 瑟瑟视频在线观看| 国产精品成人a在线观看| 欧美大片va欧美在线播放| 九九九久久久久| 亚洲深夜福利| 国产精品久久久亚洲| 国产内射老熟女aaaa∵| 成人黄色大片在线观看| 女人一区二区三区| 在线观看免费黄色| 亚洲主播在线观看| 六月激情综合网| 亚洲精品自拍| 亚洲国产日韩精品在线| 亚洲ⅴ国产v天堂a无码二区| 亚洲女同中文字幕| 97婷婷大伊香蕉精品视频| 国产精品无码一区| 成人手机电影网| 日韩中文一区| 日本无删减在线| 色菇凉天天综合网| 少妇性l交大片7724com| 国产精品45p| 中文字幕亚洲欧美日韩在线不卡| 久久婷婷一区二区| 成品人视频ww入口| 日韩黄色三级| 亚洲精品天天看| 97精品在线播放| 亚洲欧美高清| 亚洲一区二区三区xxx视频| 午夜视频www| 亚洲人成电影网站色mp4| 人妻精品无码一区二区三区| 欧美第一在线视频| 中文字幕一精品亚洲无线一区| 久久婷婷一区二区| 久久99久久99小草精品免视看| 国内精品视频在线播放| 国产精品剧情一区二区在线观看| 色婷婷av一区二区三区大白胸| 性色av浪潮av| 成人动漫免费在线观看| 国产91精品久久久| 亚洲精品国产精品乱码不卡| 欧美国产精品一区二区| 91成人在线观看喷潮教学| 国产精品国产亚洲精品| 中文日韩在线观看| 羞羞影院体验区| 国产精品系列在线观看| 亚洲啪啪av| a一区二区三区| 亚洲第一页自拍| 久久久久久久久久久久国产| 捆绑调教美女网站视频一区| 欧美中文娱乐网| 欧美少妇精品| 亚洲国产精品美女| 九九免费精品视频| 国产酒店精品激情| 一区二区三区国产福利| 视频精品导航| 国产一区二区黄| 中文字幕手机在线视频| 91农村精品一区二区在线| 国产真人做爰毛片视频直播| 中文字幕一区日韩精品| 久久久久久国产精品美女| www.国产视频| 亚洲精品久久7777| 中文字幕亚洲日本| 黄色在线一区| 国产精品国模大尺度私拍| 日本无删减在线| 精品蜜桃在线看| 国产在线综合网| 成人一区二区三区视频| 成人午夜视频在线观看免费| 加勒比视频一区| 91av视频在线免费观看| 色视频免费在线观看| 欧美日韩在线观看视频| 亚洲最大成人网站| 三级久久三级久久| 污视频在线免费观看一区二区三区 | 精品国产自在精品国产浪潮| 亚洲手机在线观看| 综合激情成人伊人| www.欧美com| 在线视频亚洲| 日韩jizzz| 四虎成人精品一区二区免费网站| 久久中文字幕视频| 亚洲免费视频网| 欧美日韩在线视频首页| 阿v天堂2014| 国内精品在线播放| 亚洲色欲久久久综合网东京热| 欧美综合精品| 国产精品视频最多的网站| av免费看在线| 亚洲免费伊人电影在线观看av| 中文字幕欧美在线观看| 亚洲另类在线制服丝袜| 小毛片在线观看| 日韩av电影一区| 三年中国中文在线观看免费播放| 澳门精品久久国产| 国产精品xxx视频| av毛片在线播放| 亚洲女成人图区| 国产精品久久久久久69| 亚洲国产cao| 日韩av片在线| 成人精品视频一区二区三区尤物| 欧美三级午夜理伦三级| 伊人久久大香线| 久久久久综合一区二区三区| 日韩欧乱色一区二区三区在线| 国内精品视频一区| jyzzz在线观看视频| 日韩丝袜美女视频| 亚洲大尺度在线观看| 亚洲午夜一区二区三区| 18精品爽国产三级网站| av电影在线观看完整版一区二区| 中文字幕 91| 亚洲日本黄色| 免费成人进口网站| 国产剧情一区| 国产精品久久久久久久免费大片| 久久野战av| 午夜精品在线视频| 成人黄色在线电影| 在线亚洲国产精品网| 五月婷婷丁香六月| 日韩视频免费观看高清完整版 | 人人超碰91尤物精品国产| 蜜臀精品一区二区| 天堂网在线观看国产精品| 蜜桃臀一区二区三区| 91成人福利| 91久久国产综合久久91精品网站| 日本免费久久| 97av在线视频免费播放| 欧美人与牲禽动交com| 日韩中文字幕在线| 成人在线免费视频| 亚洲欧美激情一区| 亚洲av激情无码专区在线播放| 91精品国产综合久久久久久漫画| 欧美三级网站在线观看| 欧美性高潮在线| 在线观看 中文字幕| 亚洲狠狠爱一区二区三区| 91麻豆免费视频网站| 欧美激情一区二区三区四区| 日本高清www| 26uuu色噜噜精品一区| 妖精视频一区二区| 成人黄色大片在线观看| 伊人影院在线观看视频| 国产精品一区二区三区四区| 97超碰成人在线| 久热成人在线视频| 色呦色呦色精品| 九色综合国产一区二区三区| 狠狠操狠狠干视频| 经典三级在线一区| 992tv人人草| 国产揄拍国内精品对白| 中文字幕第22页| 国产精品77777竹菊影视小说| www.偷拍.com| 国产91在线观看丝袜| 国产精品熟妇一区二区三区四区 | 欧美性色黄大片| 美女黄页在线观看| 欧美精品一卡两卡| www.四虎在线观看| 亚洲成人久久电影| 亚洲日本中文字幕在线| 亚洲欧洲av一区二区| h网站在线免费观看| 色噜噜亚洲精品中文字幕| 免费高清完整在线观看| 欧美成人午夜影院| www555久久| 欧美专区在线播放| 成人全视频免费观看在线看| 国产一区二区在线播放| 日韩精品视频中文字幕| 国产伦精品一区二区三| 免费视频国产一区| 亚洲成人18| 欧美日本一区| 欧美在线观看www| 蜜臀精品久久久久久蜜臀| 无套内谢丰满少妇中文字幕 | 国产经典一区二区三区| 亚洲调教一区| 一区二区三区四区五区精品| 亚洲欧美伊人| 91视频最新入口| 久久国产综合精品| 久久久久无码国产精品一区李宗瑞 | 91精品在线影院| 高清日韩中文字幕| 视频一区视频二区视频三区视频四区国产 | 日韩女优中文字幕| 亚洲一区 二区 三区| 日本网站免费在线观看| 久久国产婷婷国产香蕉| 久久人妻少妇嫩草av无码专区 | 亚洲精品一区二区三区四区五区| 一区二区三区毛片免费| 日本wwww视频| 国产九色精品成人porny| 黄色在线观看av| 亚洲欧美日韩国产综合在线| 日产精品久久久久久久| 欧美日韩国产大片| 天堂国产一区二区三区| 久久精品国产69国产精品亚洲| 色是在线视频| 亚洲一区精品电影| 国精一区二区| 加勒比成人在线| 精品亚洲aⅴ乱码一区二区三区| 91黄色免费视频| 亚洲精品综合在线| 日本三级一区二区三区| 亚洲成人免费在线视频| 国产成人无吗| 国产精品久久久久久av福利软件 | 亚洲精品tv久久久久久久久| 在线看片一区| 樱花草www在线| 欧美国产激情一区二区三区蜜月| 一级免费在线观看| 日韩免费观看高清完整版在线观看| 成人精品福利| 欧美亚洲视频一区二区| 国产一区二区三区亚洲| 亚洲精品天堂成人片av在线播放| 麻豆成人av在线| 亚洲理论片在线观看| 狠狠躁夜夜躁人人爽超碰91| 狠狠躁夜夜躁av无码中文幕| 欧美精品一区三区| 91成人精品观看| 亚洲一区在线免费| 日本不卡视频一二三区| 一区二区精品免费| 欧美日韩在线看| 五月天婷婷视频| …久久精品99久久香蕉国产| 国产精品chinese在线观看| 性做爰过程免费播放| 国产专区欧美精品| 日韩三级在线观看视频| 91.麻豆视频| 成人片在线看| 91视频网页| 欧美日韩免费| 在线中文字日产幕| 亚洲成人动漫一区| 手机在线不卡av| 8x拔播拔播x8国产精品| 图片婷婷一区| 99999精品视频| 久久久.com| 91tv国产成人福利| 久久久av电影| 日韩中文字幕| 久久久亚洲国产精品| 99热在这里有精品免费| 国产成人精品片| 亚洲香蕉伊综合在人在线视看| 日韩一级二级| 自拍偷拍亚洲色图欧美| 国产麻豆精品在线观看| 18岁成人毛片| 亚洲大胆人体在线| 在线成人av观看| 亚洲国产婷婷香蕉久久久久久99| 老司机免费视频一区二区| 全程偷拍露脸中年夫妇| 亚洲精品一线二线三线无人区| 国产中文在线播放| 日本不卡一区二区三区在线观看 | 国产精品视频一区二区三区四| 久久免费大视频| 99久久综合网| 精品高清美女精品国产区| 国产在线三区| 亚洲sss综合天堂久久| 亚洲激情黄色| 亚洲精品一区二区三区影院忠贞| 欧美精品三级日韩久久| 99热99re6国产在线播放| 日韩av电影免费播放| 狠狠色狠狠色综合| 日韩视频免费观看高清| 正在播放亚洲1区| www.久久东京| 欧美一级裸体视频| 亚洲激情欧美激情| 你懂得在线网址| 91免费观看网站| 国产一区成人| 三级全黄做爰视频| 日韩电影中文字幕一区| 日韩电影精品| 干日本少妇首页| 亚洲欧美日本韩国| 女人天堂在线| 99国精产品一二二线| 日欧美一区二区| 一区二区三区免费高清视频| 正在播放亚洲1区| 欧洲vs亚洲vs国产| 国产在线视频三区|