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

學(xué)習(xí)設(shè)備開發(fā)之Hi3861-TCPclient-開關(guān)燈

系統(tǒng) OpenHarmony
傳輸控制協(xié)議(TCP,Transmission Control Protocol)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,由IETF的RFC 79 定義。

??想了解更多關(guān)于開源的內(nèi)容,請訪問:???

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

一、前言

學(xué)習(xí)OpenHarmony南向設(shè)備開發(fā)中的網(wǎng)絡(luò)通信,它可以將底層開發(fā)板獲得的數(shù)據(jù)傳輸?shù)缴蠈拥姆?wù)器,服務(wù)器亦可通過網(wǎng)絡(luò)通信控制底層開發(fā)板。

二、TCP簡介

傳輸控制協(xié)議(TCP,Transmission Control Protocol)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,由IETF的RFC 79 定義。
TCP旨在適應(yīng)支持多網(wǎng)絡(luò)應(yīng)用的分層協(xié)議層次結(jié)構(gòu)。 連接到不同但互連的計算機通信網(wǎng)絡(luò)的主計算機中的成對進程之間依靠TCP提供可靠的通信服務(wù)。TCP假設(shè)它可以從較低級別的協(xié)議獲得簡單的,可能不可靠的數(shù)據(jù)報服務(wù)。 原則上,TCP應(yīng)該能夠在從硬線連接到分組交換或電路交換網(wǎng)絡(luò)的各種通信系統(tǒng)之上操作。

網(wǎng)絡(luò)編程開發(fā)繞不開socket(套接字)的使用,socket就是整合好TCP/IP協(xié)議的一個工具。讓我們無需過度關(guān)注于底層協(xié)議的實現(xiàn),直接用封裝好的socket就行了.

TCP服務(wù)器端與TCP客戶端進行通信的流程??

#盲盒+碼#【FFH】學(xué)習(xí)設(shè)備開發(fā)之Hi3861-TCPclient-開關(guān)燈-開源基礎(chǔ)軟件社區(qū)

三、分析代碼

本次實驗使用的是OpenHarmony1.0.0的源碼:??源碼壓縮包地址??參考HiSpark WiFi-IoT 鴻蒙套件樣例開發(fā)–網(wǎng)絡(luò)編程(tcpclient)

1.導(dǎo)入樣例

將潤和提供的21_tcpclient開發(fā)樣例文件夾復(fù)制到源碼applications/sample/wifi-iot/app路徑下:

#盲盒+碼#【FFH】學(xué)習(xí)設(shè)備開發(fā)之Hi3861-TCPclient-開關(guān)燈-開源基礎(chǔ)軟件社區(qū)


在app路徑下的BUILD.gn添加需要編譯的靜態(tài)庫名稱:tcpclient:net_demo。

import("http://build/lite/config/component/lite_component.gni")

lite_component("app") {
features = [
"startup",
"tcpclient:net_demo",
]
}

靜態(tài)庫名稱可在21_tcpclient文件夾下的BUILD.gn里查看。

#盲盒+碼#【FFH】學(xué)習(xí)設(shè)備開發(fā)之Hi3861-TCPclient-開關(guān)燈-開源基礎(chǔ)軟件社區(qū)

踩坑:一開始直接寫靜態(tài)庫名net_demo是會報錯的!

#盲盒+碼#【FFH】學(xué)習(xí)設(shè)備開發(fā)之Hi3861-TCPclient-開關(guān)燈-開源基礎(chǔ)軟件社區(qū)

報錯內(nèi)容??一般都是BUILD.gn文件出現(xiàn)問題:

#盲盒+碼#【FFH】學(xué)習(xí)設(shè)備開發(fā)之Hi3861-TCPclient-開關(guān)燈-開源基礎(chǔ)軟件社區(qū)

2、分析代碼

  • demo_entry_cmsis.c : 鴻蒙liteos-m程序入口,支持Hi3861。
  • demo_entry_posix.c :鴻蒙liteos-a和Unix系統(tǒng)程序入口,Hi3516、Hi3518、PC。
  • net_common.h :系統(tǒng)網(wǎng)絡(luò)接口頭文件。
  • net_demo.h :demo腳手架頭文件。
  • net_params.h :網(wǎng)絡(luò)參數(shù),包括WiFi熱點信息,服務(wù)器IP、端口信息。
  • tcp_client_test.c :TCP客戶端。
  • wifi_connecter.c :鴻蒙WiFi STA模式API的封裝實現(xiàn)文件,比鴻蒙原始接口更容易使用。
  • wifi_connecter.h :鴻蒙WiFi STA模式API的封裝頭文件,比鴻蒙原始接口更容易使用。

事先在net_params.h文件里修改WiFi的配置。

#盲盒+碼#【FFH】學(xué)習(xí)設(shè)備開發(fā)之Hi3861-TCPclient-開關(guān)燈-開源基礎(chǔ)軟件社區(qū)

程序入口:demo_entry_cmsis.c文件。

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "iot_gpio.h"

#include "ohos_init.h"
#include "cmsis_os2.h"

#include "net_demo.h"
#include "net_params.h"
#include "wifi_connecter.h"

#define LED_TASK_GPIO 9
static void NetDemoTask(void *arg) //一開始線程入口函數(shù)
{
(void)arg;
WifiDeviceConfig config = {0}; //表示用于連接到指定 Wi-Fi 設(shè)備的 Wi-Fi 站配置。
IoTGpioInit(LED_TASK_GPIO); //初始化IO口,為后文點燈做準(zhǔn)備
IoTGpioSetDir(LED_TASK_GPIO, IOT_GPIO_DIR_OUT); //設(shè)置GPIO為輸出模式
// 準(zhǔn)備AP的配置參數(shù)
strcpy(config.ssid, PARAM_HOTSPOT_SSID); //從net_params.h拷貝WiFi的參數(shù)
strcpy(config.preSharedKey, PARAM_HOTSPOT_PSK);
config.securityType = PARAM_HOTSPOT_TYPE; //配置WiFi的安全模式
osDelay(10);
int netId = ConnectToHotspot(&config); //連接熱點
int timeout = 10;
while (timeout--) //等待10秒后開始執(zhí)行NetDemoTest
{
printf("After %d seconds, I will start %s test!\r\n", timeout, GetNetDemoName());
osDelay(100);
}
while (1)
{
NetDemoTest(PARAM_SERVER_PORT, PARAM_SERVER_ADDR); //開始TCP連接,輸入端口號,ip地址
}
printf("disconnect to AP ...\r\n");
// DisconnectWithHotspot(netId);
printf("disconnect to AP done!\r\n");
}
static void NetDemoEntry(void)
{
osThreadAttr_t attr;
attr.name = "NetDemoTask";
attr.attr_bits = 0U;
attr.cb_mem = NULL;
attr.cb_size = 0U;
attr.stack_mem = NULL;
attr.stack_size = 10240;
attr.priority = osPriorityNormal;

if (osThreadNew(NetDemoTask, NULL, &attr) == NULL)
{
printf("[NetDemoEntry] Falied to create NetDemoTask!\n");
}
}
SYS_RUN(NetDemoEntry);

①成功連接wifi后,接下來就是創(chuàng)建socket套接字準(zhǔn)備進行TCP連接。

int sockfd = socket(AF_INET, SOCK_STREAM, 0); // AF_INET:IP 協(xié)議系列。SOCK_STREAM=1:TCP協(xié)議

跳轉(zhuǎn)到socket的定義。

#盲盒+碼#【FFH】學(xué)習(xí)設(shè)備開發(fā)之Hi3861-TCPclient-開關(guān)燈-開源基礎(chǔ)軟件社區(qū)

  • domain:協(xié)議族(family),常用的協(xié)議族有 AFL INET(ipv4 )、AF INET6、AF LOCAL(或稱AF UNIX, Unix成socket) AF ROUTE 等。協(xié)議族決定了 socket 的地址類型,在通信中必須采用對應(yīng)的地址。
  • type:指定 Socket 類型。
  • #盲盒+碼#【FFH】學(xué)習(xí)設(shè)備開發(fā)之Hi3861-TCPclient-開關(guān)燈-開源基礎(chǔ)軟件社區(qū)

  • 流式 socket (SOCK STREAM)是一種面向連接的 Socket, 針對于面向連接的 TCP 服務(wù)應(yīng)用。數(shù)據(jù)報式 socket(SOCK DGRAM) 是一種無連接的 Socket,對應(yīng)于 無連接的 UDP 服務(wù)應(yīng)用。
  • protocol: 表示傳輸協(xié)議,常用的有 IPPROTO_TCP 和 IPPTOTO_UDP,分別表示 TCP 傳輸協(xié)議和 UDP 傳輸協(xié)議。protocol 的值設(shè)為 0,系統(tǒng)會自動推演出應(yīng)該使用什么協(xié)議。
    ②配置
struct sockaddr_in serverAddr = {0}; //描述互聯(lián)網(wǎng)套接字地址的結(jié)構(gòu)體
serverAddr.sin_family = AF_INET; // AF_INET表示IPv4協(xié)議
serverAddr.sin_port = htons(port); // 端口號,從主機字節(jié)序轉(zhuǎn)為網(wǎng)絡(luò)字節(jié)序
if (inet_pton(AF_INET, host, &serverAddr.sin_addr) <= 0)
{ // 將主機IP地址從“點分十進制”字符串 轉(zhuǎn)化為 標(biāo)準(zhǔn)格式(32位整數(shù))
printf("inet_pton failed!\r\n");
goto do_cleanup;
}

③與主機連接。

// 嘗試和目標(biāo)主機建立連接,連接成功會返回0 ,失敗返回 -1
if (connect(sockfd, (struct sockaddr *)&serverAddr, sizeof(serverAddr)) < 0)
{
printf("connect failed!\r\n");
goto do_cleanup;
}
printf("connect to server %s success!\r\n", host);

④連接成功后,發(fā)送數(shù)據(jù)給目標(biāo)主機測試是否發(fā)送成功。

// 建立連接成功之后,這個TCP socket描述符 —— sockfd 就具有了 “連接狀態(tài)”,發(fā)送、接收 對端都是 connect 參數(shù)指定的目標(biāo)主機和端口
retval = send(sockfd, request, sizeof(request), 0); //發(fā)送request給目標(biāo)主機,成功會返回字符串長度 ,失敗返回 -1
if (retval < 0)
{
printf("send request failed!\r\n");
goto do_cleanup;
}
printf("send request{%s} %ld to server done!\r\n", request, retval);

⑤接收服務(wù)器發(fā)送過來的數(shù)據(jù)。

retval = recv(sockfd, &response, sizeof(response), 0);//接收目標(biāo)主機的消息存入response,成功會返回字符串長度 ,失敗返回 -1
if (retval <= 0) {
printf("send response from server failed or done, %ld!\r\n", retval);
goto do_cleanup;
}
response[retval] = '\0';
printf("recv response{%s} %ld from server done!\r\n", response, retval);

3、修改代碼,實現(xiàn)開關(guān)燈操作

①在入口demo_entry_cmsis.c 文件中初始化LED燈的io口。
代碼在上文已貼出
②tcp_client_test.c文件。
由上文分析原始的代碼可知:開發(fā)板(客戶端)與主機(服務(wù)器)完成一次消息交互后就會關(guān)閉socket套接字,再關(guān)閉WiFi。
所以可以把關(guān)閉套接字的函數(shù)(close(sockfd))注釋掉,再加個while死循環(huán)即可。

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "net_demo.h"
#include "net_common.h"
#define LED_TASK_GPIO 9
static char request[] = "Hello";
static char response[128] = "";
void TcpClientTest(const char *host, unsigned short port)
{
ssize_t retval = 0;
int sockfd = socket(AF_INET, SOCK_STREAM, 0); // AF_INET:IP 協(xié)議系列。SOCK_STREAM=1:TCP協(xié)議

struct sockaddr_in serverAddr = {0}; //描述互聯(lián)網(wǎng)套接字地址的結(jié)構(gòu)體
serverAddr.sin_family = AF_INET; // AF_INET表示IPv4協(xié)議
serverAddr.sin_port = htons(port); // 端口號,從主機字節(jié)序轉(zhuǎn)為網(wǎng)絡(luò)字節(jié)序
if (inet_pton(AF_INET, host, &serverAddr.sin_addr) <= 0)
{ // 將主機IP地址從“點分十進制”字符串 轉(zhuǎn)化為 標(biāo)準(zhǔn)格式(32位整數(shù))
printf("inet_pton failed!\r\n");
goto do_cleanup;
}
// 嘗試和目標(biāo)主機建立連接,連接成功會返回0 ,失敗返回 -1
if (connect(sockfd, (struct sockaddr *)&serverAddr, sizeof(serverAddr)) < 0)
{
printf("connect failed!\r\n");
goto do_cleanup;
}
printf("connect to server %s success!\r\n", host);

// 建立連接成功之后,這個TCP socket描述符 —— sockfd 就具有了 “連接狀態(tài)”,發(fā)送、接收 對端都是 connect 參數(shù)指定的目標(biāo)主機和端口
retval = send(sockfd, request, sizeof(request), 0); //發(fā)送request給目標(biāo)主機,成功會返回字符串長度 ,失敗返回 -1
if (retval < 0)
{
printf("send request failed!\r\n");
goto do_cleanup;
}
printf("send request{%s} %ld to server done!\r\n", request, retval);
while (1)
{
retval = recv(sockfd, &response, sizeof(response), 0); //接收目標(biāo)主機的消息存入response,成功會返回字符串長度 ,失敗返回 -1
if (retval <= 0)
{
printf("send response from server failed or done, %ld!\r\n", retval);
goto do_cleanup;
}
response[retval] = '\0';
printf("recv response{%s} %ld from server done!\r\n", response, retval);

if (response[0] == 'o' && response[1] == 'n')
{
IoTGpioSetOutputVal(LED_TASK_GPIO, 0); //開燈
printf("The led is on\n");
}
if (response[0] == 'o' && response[1] == 'f' && response[2] == 'f')
{
IoTGpioSetOutputVal(LED_TASK_GPIO, 1); //關(guān)燈
printf("The led is off\n");
}
}

do_cleanup:
printf("do_cleanup...\r\n");
// close(sockfd);//關(guān)閉套接字
}
CLIENT_TEST_DEMO(TcpClientTest);

四、測試

1.安裝netcat(一個非常強大的網(wǎng)絡(luò)實用工具,可以用它來調(diào)試TCP/UDP應(yīng)用程序)
二選一:

  • Linux上:sudo apt-get install netcat。
  • Windows上:Windows版netcat。

將解壓出來的文件全部復(fù)制到C:\Windows\System32的文件夾下。

Windows+R cmd 打開命令行。輸入nc 命令即可。

2.開始測試

先是PC機開啟TCP服務(wù)端監(jiān)聽(我選擇的是Windows啟動netcat)。

-l: 開始監(jiān)聽。

-p:指定端口 (端口號必須保持一致,可在net_params.h文件配置)。

開發(fā)板燒錄新的固件后rest啟動后可觀察到服務(wù)端接收到了客戶端傳輸過來的數(shù)據(jù)"hello"。

開發(fā)板??一開始燈是亮的狀態(tài)。

#盲盒+碼#【FFH】學(xué)習(xí)設(shè)備開發(fā)之Hi3861-TCPclient-開關(guān)燈-開源基礎(chǔ)軟件社區(qū)

PC服務(wù)端。

#盲盒+碼#【FFH】學(xué)習(xí)設(shè)備開發(fā)之Hi3861-TCPclient-開關(guān)燈-開源基礎(chǔ)軟件社區(qū)

服務(wù)端輸入"off",可讓開發(fā)板關(guān)燈,完成交互。

#盲盒+碼#【FFH】學(xué)習(xí)設(shè)備開發(fā)之Hi3861-TCPclient-開關(guān)燈-開源基礎(chǔ)軟件社區(qū)

#盲盒+碼#【FFH】學(xué)習(xí)設(shè)備開發(fā)之Hi3861-TCPclient-開關(guān)燈-開源基礎(chǔ)軟件社區(qū)

繼續(xù)開燈。

#盲盒+碼#【FFH】學(xué)習(xí)設(shè)備開發(fā)之Hi3861-TCPclient-開關(guān)燈-開源基礎(chǔ)軟件社區(qū)

五、總結(jié)

這次實踐中還有一些地方不能完全理解,在net_demo.h文件中。

#盲盒+碼#【FFH】學(xué)習(xí)設(shè)備開發(fā)之Hi3861-TCPclient-開關(guān)燈-開源基礎(chǔ)軟件社區(qū)

為什么有這么多斜杠?

testFun是什么?它又是怎樣跳轉(zhuǎn)到tcp_client_test.c文件執(zhí)行TcpClientTest()函數(shù)的呢?

??想了解更多關(guān)于開源的內(nèi)容,請訪問:???

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??。

責(zé)任編輯:jianghua 來源: 51CTO開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2022-11-29 16:29:50

設(shè)備開發(fā)UDP

2023-05-26 16:07:14

Hi3861Wifi模塊

2021-12-31 15:07:00

鴻蒙HarmonyOS應(yīng)用

2022-03-15 15:00:59

Hi3861Pin接口鴻蒙

2022-08-19 10:54:47

操作系統(tǒng)鴻蒙

2021-02-02 15:52:17

鴻蒙HarmonyOS應(yīng)用開發(fā)

2020-12-17 10:02:16

鴻蒙Hi3861開發(fā)板

2021-09-09 10:06:09

鴻蒙HarmonyOS應(yīng)用

2020-10-16 09:50:37

Hi3861WiFi熱點

2021-01-08 10:00:53

鴻蒙訊飛平臺語音控制

2020-12-16 10:05:48

鴻蒙開發(fā)板Onenet平臺

2021-06-25 15:32:13

鴻蒙HarmonyOS應(yīng)用

2020-11-06 10:15:16

HiBurn

2020-12-11 12:45:04

鴻蒙Hi3861游戲

2020-10-14 09:37:03

HiBurn鴻蒙.bin文件

2020-10-14 09:41:02

Hi3861GPIO點燈

2023-05-09 15:17:42

Hi3861鴻蒙

2021-09-16 10:03:39

鴻蒙HarmonyOS應(yīng)用

2022-05-09 14:22:40

Hello WorlMNIST鴻蒙

2022-03-07 15:05:58

HTTPHi3861數(shù)據(jù)解析
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲人成伊人成综合图片| 另类视频在线| 国产精品一卡二卡| 久久久视频精品| 五月天精品视频| 成人精品视频在线观看| 偷拍与自拍一区| 一区二区视频在线免费| 天天干天天爽天天操| 蜜臀av性久久久久蜜臀aⅴ流畅| 久久伊人精品视频| 国产老熟女伦老熟妇露脸| 成人不卡视频| 精品久久久香蕉免费精品视频| 欧美精品欧美精品| www.天天干.com| 日韩在线一区二区三区| 久久久久久这里只有精品| 久久久久亚洲av成人无码电影| 日韩精品视频在线看| 在线免费观看不卡av| 欧美无砖专区免费| 日本在线免费看| 91麻豆精东视频| 国产精品三区在线| 国产按摩一区二区三区| 老司机午夜精品视频| 久久久久久久久久婷婷| av最新在线观看| 欧美老女人另类| 日韩精品免费在线播放| 久久无码人妻一区二区三区| abab456成人免费网址| 欧美日韩国产在线看| 国产成人免费高清视频| yjizz视频网站在线播放| 99麻豆久久久国产精品免费 | 亚洲视频在线二区| 青春草在线观看| 成人精品国产一区二区4080| 91久久精品国产91性色| 免费无码国产精品| 久久精品天堂| 欧美在线亚洲一区| 国产成人亚洲欧洲在线| 亚洲国产专区| 孩xxxx性bbbb欧美| 日本三级片在线观看| 国内自拍一区| 久久久免费av| 91精品国产高潮对白| 国一区二区在线观看| 九九九热精品免费视频观看网站| 亚洲一级生活片| 91精品久久久久久久蜜月| 精品国产一区二区三区久久久| 五月激情四射婷婷| 婷婷综合五月| 欧美猛交免费看| 9999热视频| 韩国亚洲精品| 91精品国产91久久久久久久久 | 欧美日韩一区久久| 日本在线播放一区二区| 日韩五码电影| 日韩精品一区二区三区视频播放| 亚洲精品激情视频| 日韩大片在线免费观看| 国产午夜精品全部视频在线播放| 日本少妇xxxxx| 91精品秘密在线观看| 欧美日本啪啪无遮挡网站| 国产一级视频在线播放| 中文日韩欧美| 国产精品网址在线| 国产国语亲子伦亲子| 国产69精品久久久久777| 精品国产一区二区三区麻豆小说 | 最近日韩中文字幕| 日本三级中文字幕在线观看| av午夜在线观看| 日韩欧美在线观看视频| 欧美男女交配视频| 91麻豆精品国产91久久久久推荐资源| 亚洲精品国产品国语在线| 国产中年熟女高潮大集合| 91精品综合久久久久久久久久久| 久久久久久久久久国产| 在线观看亚洲黄色| 国产激情一区二区三区四区| 久久亚洲国产精品日日av夜夜| 91在线不卡| 亚洲一级不卡视频| 91色国产在线| www.爱久久| 伊人精品在线观看| 精品无码久久久久久久| 蜜臀久久久99精品久久久久久| 成人欧美一区二区三区视频 | 久久草在线视频| 综合激情国产一区| 日韩精品一区二区三| 久久精品999| 蜜桃视频日韩| 呦呦在线视频| 欧美天天综合网| 国产精品福利导航| 亚洲天堂免费| 国产精品美女久久久久久免费| 性生活三级视频| 国产精品网站导航| 男人天堂网视频| 日韩精品视频中文字幕| 中文字幕一区电影| 成人毛片在线播放| 不卡av在线免费观看| ijzzijzzij亚洲大全| 综合毛片免费视频| 亚洲第一av在线| caoporn91| 美女视频一区二区三区| 欧美日韩在线一区二区三区| eeuss鲁一区二区三区| 91精品在线一区二区| 国产精品无码网站| 在线日本高清免费不卡| julia一区二区中文久久94| 日韩精品黄色| 欧美色精品天天在线观看视频| 北岛玲一区二区| 黑人一区二区三区四区五区| 成人免费网站在线看| 日本最新在线视频| 欧美三级电影一区| 午夜影院黄色片| 日本亚洲一区二区| 欧洲一区二区在线| 老司机2019福利精品视频导航| 亚洲精品国产精品自产a区红杏吧| 久久免费播放视频| 成人一区二区视频| 精品一二三四五区| 国内精品麻豆美女在线播放视频| 久久777国产线看观看精品| 国产又大又粗又长| 中文字幕一区二区三区乱码在线| 中文字幕 91| 日韩综合在线| 成人信息集中地欧美| 国产剧情在线| 欧美一级理论片| 久久久久久久福利| 成人av网站在线| 日本精品一区在线观看| 最新国产精品视频| 国产精品美女av| 黄色网页网址在线免费| 日韩一区二区麻豆国产| 欧美精品一级片| 99re6这里只有精品视频在线观看| 国产真人做爰毛片视频直播| 欧美一区二区三区久久| 国产精品99导航| 日本在线视频网| 日韩免费看网站| 欧美三级韩国三级日本三斤在线观看| 2017欧美狠狠色| 在线免费观看av的网站| 91精品国产91久久久久久黑人| 999在线观看免费大全电视剧| 黄色影院在线看| 亚洲欧美制服第一页| 国产成人a v| 亚洲三级在线免费观看| 日本一区二区免费视频| 午夜在线精品偷拍| 最近中文字幕免费mv| 7777精品| 国产精品美乳一区二区免费| 成人黄色网址| 日韩av一区在线| 一区二区视频播放| 亚洲电影激情视频网站| 亚洲色成人网站www永久四虎| 精品一区二区三区免费| 97在线国产视频| 日产午夜精品一线二线三线| 99在线影院| 成人黄色免费网站| 久久久久久久久久久亚洲| 成人福利在线| 亚洲精品一区二区三区在线观看| 91在线视频免费播放| 一区二区免费看| 国产人妻大战黑人20p| 国产精品99久| 高清一区二区视频| 99热精品在线观看| 中文字幕一区综合| 国产免费av一区二区三区| 91精品国产综合久久久久久丝袜| 理论不卡电影大全神| 久久亚洲国产成人| 都市激情在线视频| 亚洲电影在线看| av资源免费看| 欧美日韩免费观看一区三区| 成年人免费看毛片| 一区二区三区不卡在线观看| 调教驯服丰满美艳麻麻在线视频| 懂色av一区二区三区免费观看| 一女二男3p波多野结衣| 亚洲免费综合| 大伊香蕉精品视频在线| 一个色综合网| 亚洲一区二区在线观| 免费久久久久久久久| 国产一区二区三区四区五区在线| 99热这里有精品| 国产啪精品视频网站| 欧美aa视频| 亚洲**2019国产| 女人黄色免费在线观看| 久久精品99久久久香蕉| 国产福利第一视频在线播放| 日韩第一页在线| 高h放荡受浪受bl| 日韩欧美国产午夜精品| 国产美女裸体无遮挡免费视频| 欧美性videosxxxxx| 国产伦精品一区二区三区视频网站| 亚洲第一av色| 久久久久免费看| 一区二区三区免费观看| 91插插插插插插| 亚洲精品视频自拍| 亚洲精品久久久久久国| 国产精品短视频| 久久久久久久麻豆| 国产精品二三区| 亚洲综合视频网站| 亚洲免费在线电影| 久久久久久久久久网站| 伊人夜夜躁av伊人久久| 欧美三级小视频| 亚洲va欧美va国产va天堂影院| 国产一级在线视频| 亚洲国产精品久久久男人的天堂 | 中文字幕在线观看的网站| 99久久综合狠狠综合久久| 中国av免费看| 久久久久国产精品麻豆ai换脸 | 在线观看亚洲免费视频| 国产成人av一区二区三区在线 | 亚洲国产一区二区a毛片| 欧美极品aaaaabbbbb| 亚洲图片欧美综合| 亚洲免费在线观看av| 色婷婷av一区| 一级成人免费视频| 日韩亚洲欧美在线观看| 内射后入在线观看一区| 亚洲精品福利在线| 国产一级免费在线观看| 日韩一区二区三区xxxx| 怡红院在线观看| 8090成年在线看片午夜| 在线成人视屏| 亚洲伊人第一页| 欧美偷窥清纯综合图区| 丝袜美腿玉足3d专区一区| 久久久久蜜桃| 国产96在线 | 亚洲| 久久婷婷激情| 亚洲一级片av| 99视频超级精品| 日本少妇aaa| 午夜精品久久久久| 中文字幕理论片| 欧美zozozo| 成年人在线观看网站| 久久影视电视剧免费网站| 激情黄产视频在线免费观看| 国产精品久久77777| 999在线精品| 欧美主播一区二区三区美女 久久精品人| 欧美成人自拍| 91专区在线观看| 国产一区二区免费在线| 成人影视免费观看| 亚洲精品自拍动漫在线| av黄色在线播放| 日韩视频免费直播| 国产女主播在线写真| 欧美激情图片区| 成人综合网站| 免费中文日韩| 91成人精品| 簧片在线免费看| 99久久精品国产观看| 国产尤物在线播放| 91久久精品网| 少妇av一区二区| 久久精品国产成人| 欧美男女交配| 国产一级特黄a大片99| 国产精品毛片久久| 亚洲天堂网一区| 91麻豆免费视频| 日本熟伦人妇xxxx| 欧美一区二区在线视频| 国产精品一区二区三区四区色 | 激情久久一区二区| 久久精品欧美| 18成人免费观看视频| 想看黄色一级片| 国产精品美女视频| 丁香社区五月天| 亚洲精品福利在线| 91破解版在线观看| av在线亚洲男人的天堂| 亚洲澳门在线| 激情黄色小视频| 国产欧美一区二区三区网站| 中文字幕一区二区人妻电影| 亚洲激情电影中文字幕| www.8ⅹ8ⅹ羞羞漫画在线看| 91精品黄色| 欧美日韩一区二区国产| 日韩av影视大全| 亚洲视频图片小说| 国产又粗又猛又爽又黄的视频一| 亚洲视频777| 精品3atv在线视频| 日韩中文字幕一区| 视频一区二区欧美| 日韩一级av毛片| 在线视频中文字幕一区二区| 国产日本在线| 国产日韩欧美另类| 久久精品影视| 中文 日韩 欧美| 亚洲精品国产精品乱码不99| av男人天堂av| 欧美日韩xxx| 成人在线tv视频| www.玖玖玖| 91老师片黄在线观看| 中文字幕在线日本| 一本色道久久综合狠狠躁篇怎么玩 | 国内精品久久影院| 欧美18免费视频| 动漫av网站免费观看| 国产亚洲欧洲一区高清在线观看| 国产99久久久久久免费看| 色多多国产成人永久免费网站| 亚州精品国产| 日本精品福利视频| 成人av综合在线| 亚洲GV成人无码久久精品| 一区二区三区天堂av | 黄色国产精品一区二区三区| 亚洲精品1区| 国产交换配乱淫视频免费| 在线欧美一区二区| 久久bbxx| 激情伦成人综合小说| 久久五月激情| 91精品少妇一区二区三区蜜桃臀| 欧美成人在线直播| 亚洲欧美一区二区三区| 亚洲一区二区三区乱码| 国产91精品久久久久久久网曝门| 日本在线播放视频| 日韩在线不卡视频| 精品成人自拍视频| 日本www.色| 亚洲资源中文字幕| 户外极限露出调教在线视频| 成人免费自拍视频| 亚洲免费成人| 视频国产一区二区| 亚洲国模精品一区| 日韩午夜电影免费看| 日本在线xxx| 国产精品精品国产色婷婷| 国产成人无码www免费视频播放| 日本欧美一级片| 欧美黄色大片网站| www.狠狠爱| 精品国产亚洲在线| 成人性片免费| 毛片在线视频播放| 亚洲女同女同女同女同女同69| 五月天婷婷激情网| 91久久久在线| 蜜桃伊人久久| 久久精品国产亚洲av高清色欲| 国产亚洲欧洲高清一区| 91精品日本|