精品欧美一区二区三区在线观看 _久久久久国色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资源站| 亚洲在线久久| 精品国产91洋老外米糕| xxxx18hd亚洲hd捆绑| 深夜福利在线观看直播| 日韩经典中文字幕一区| 日韩中文字幕国产精品| 国产乱淫av片| 欧美aa视频| 亚洲精品中文字幕在线观看| 精品久久久久久一区| 一区二区视频网站| 综合久久亚洲| 亚洲精品中文字幕女同| 污网站在线免费| а√天堂资源官网在线资源| 国产无人区一区二区三区| 91在线看www| 亚洲黄色一区二区| 久久视频国产| 日韩精品极品在线观看播放免费视频| 五月婷婷狠狠操| 久草在线资源站资源站| 国产午夜亚洲精品羞羞网站| 99热99热| 伊人网免费视频| 国产精品av久久久久久麻豆网| 日韩精品在线观| 亚洲图片 自拍偷拍| 唐人社导航福利精品| 亚洲精品你懂的| 蜜桃视频成人| 丰满少妇一级片| 久久av资源网| 国产成人+综合亚洲+天堂| 日韩视频中文字幕在线观看| 国产一区二区三区电影在线观看| 日韩精品中文字幕在线一区| 国产福利影院在线观看| 欧美在线极品| 亚洲国产毛片aaaaa无费看| 一本久久a久久精品vr综合| 手机在线精品视频| 国产九色精品成人porny| 国产精品一区二区三区免费视频| 国产一级一级片| 亚洲v在线看| 日韩中文字幕视频在线观看| 人妻大战黑人白浆狂泄| 亚洲丁香日韩| 日韩精品在线观看一区| 偷偷色噜狠狠狠狠的777米奇| 日韩欧美中文字幕在线视频| 欧美一区二区三区不卡| 亚洲高清视频免费| 成人黄色91| 91精品国产黑色紧身裤美女| 最近中文字幕一区二区| 日本免费一区二区三区四区| 欧美性猛交xxxx乱大交极品| 日本福利视频在线| а√天堂资源官网在线资源| 亚洲国产裸拍裸体视频在线观看乱了 | 成人影音在线| 亚洲黄色在线视频| 欧美美女黄色网| 91cn在线观看| 亚洲日本va在线观看| 日韩欧美一区二区视频在线播放| 爽爽视频在线观看| 99re成人在线| 国内精品一区二区| 五月婷婷伊人网| 成人精品亚洲人成在线| av日韩中文字幕| 国产精品久久影视| 国模无码大尺度一区二区三区| 国产精品久久久久久久久久新婚| 色av性av丰满av| 免费看的黄色欧美网站| 欧美黑人视频一区| 欧美bbbbbbbbbbbb精品| 久久动漫亚洲| 国产精品电影网| 中文区中文字幕免费看| 美女www一区二区| 91久久久久久久| 国产手机av在线| 久久精品国产秦先生| 成人做爽爽免费视频| 国产美女精品视频国产| 国产成人在线观看| 成人动漫视频在线观看免费| 色呦呦视频在线| 91亚洲精品久久久蜜桃| 欧美一区二区三区四区夜夜大片| 国产在线视频资源| 中文一区二区完整视频在线观看| 视频一区二区三区免费观看| 国内外激情在线| 亚洲午夜视频在线观看| 欧日韩免费视频| 久久91导航| 欧美日韩国产美| 中文字幕18页| 国产成人影院| www.欧美免费| 国产福利片一区二区| 中文字幕有码av| 无码小电影在线观看网站免费 | 日韩videos| 米奇精品一区二区三区| 亚洲国产一区二区三区青草影视| 成人一级片网站| 日韩五码电影| 日韩精品一区二区在线| 国产一精品一aⅴ一免费| 欧美色图婷婷| 色妞久久福利网| 精品无码m3u8在线观看| 日本亚洲欧美天堂免费| 国产98在线|日韩| 激情小视频在线| 国产精品拍天天在线| 在线电影看在线一区二区三区| 欧美6一10sex性hd| 欧美中文一区二区三区| 免费啪视频在线观看| 不卡视频在线| 色综合天天综合网国产成人网 | 日本一二区不卡| 久久久久久久久国产精品| 日韩精品一区二区亚洲av观看| 激情都市一区二区| 欧美激情论坛| 七七久久电影网| 欧美三级韩国三级日本三斤| 久久久高清视频| 91精品国产乱码久久久久久久| 8x海外华人永久免费日韩内陆视频| 中文字幕一区二区人妻痴汉电车| 成人网页在线观看| 中文字幕中文字幕在线中心一区| 日韩激情电影| 日韩欧美国产精品| 亚洲天堂成人av| 在线播放一区| 91手机在线视频| 91社区在线观看播放| 欧美色xxxx| 韩国三级hd两男一女| 久久久久国产| 国产精品久久久久久久久久免费| 无码精品人妻一区二区三区影院| 中文av一区二区| 免费无遮挡无码永久视频| 日韩高清一区| 久久久国产视频| 在线观看亚洲黄色| 2欧美一区二区三区在线观看视频| 国产精品夜夜夜爽张柏芝| 日本在线中文字幕一区二区三区| 日韩精品中文在线观看| 国产在线一区视频| 国产精品一区二区三区四区| 国产欧美123| 精品一区二区三区中文字幕视频| 中文字幕视频一区二区在线有码 | 欧美精品尤物在线观看| 日本一区二区三区四区视频| 香蕉视频免费在线看| 亚洲va欧美va人人爽| 中文字幕a在线观看| 欧美激情视频一区二区三区在线播放 | 国产日本欧美视频| 天天综合视频在线观看| 91精品啪在线观看国产60岁| 国产美女久久久久久| 激情偷乱视频一区二区三区| 中文字幕日韩一区二区三区不卡 | 亚洲精品国产高清久久伦理二区| 九九久久久久久| 水蜜桃久久夜色精品一区| 国产精品久久久久久久久久小说| 大胆av不用播放器在线播放| 在线观看www91| 日韩精品电影一区二区三区| 六月丁香婷婷久久| 中文精品一区二区三区| 亚洲一区二区三区四区电影| 欧美激情一区二区三区久久久 | 7777精品伊人久久久大香线蕉| 青青青视频在线播放| 国产裸体歌舞团一区二区| 日本大胆人体视频| 国产精品欧美大片| 日韩av三级在线观看| av小片在线| 欧美一二三四在线| wwwxxx亚洲| 国产欧美一区二区三区沐欲| 天天摸天天舔天天操| 欧美/亚洲一区| 蜜桃av久久久亚洲精品| 日韩国产91| 欧美激情第6页| 欧美男男同志| 在线播放一区二区三区| 国产精品theporn动漫| av成人老司机| 999这里有精品| 99热精品在线| 亚洲一区二区三区精品动漫| 日韩三级网址| 国产黑人绿帽在线第一区| 黄色网在线免费观看| 亚洲国产欧美一区二区丝袜黑人 | 成人黄色大片在线免费观看| 丰满诱人av在线播放| 亚洲视频999| 亚洲国产欧美另类| 在线免费视频一区二区| 国产一级av毛片| 久久精品人人爽人人爽| 性折磨bdsm欧美激情另类| 免费看的黄色欧美网站| 2021国产视频| 欧美一区二区三| 国产精品久久波多野结衣| 日韩三区四区| 热久久这里只有精品| gogo在线观看| 国产亚洲人成网站在线观看| 六月婷婷综合网| 欧美人伦禁忌dvd放荡欲情| 日本黄色片视频| 亚洲女厕所小便bbb| 免费看裸体网站| 99精品视频一区二区| 久久久久无码精品| 蜜臀av性久久久久蜜臀av麻豆| 国产aaa免费视频| 亚洲老妇激情| 亚洲草草视频| 影视先锋久久| 粉嫩精品一区二区三区在线观看 | 青青草娱乐在线| 亚洲爱爱爱爱爱| 99国产精品欲| 欧美日韩精品一区视频| 波多野结衣二区三区| 欧美日韩国产一中文字不卡| 欧美三级日本三级| 国产精品美女久久久久久久网站| 好吊色视频一区二区三区| 国产一区二区三区在线观看免费 | 国内露脸中年夫妇交换精品| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 日韩av二区在线播放| 日本成人中文字幕在线| 性欧美xxxx大乳国产app| 黄页免费在线观看视频| 欧美午夜一区二区福利视频| 4444在线观看| 91精品推荐| 懂色av一区二区三区四区五区| 欧美三级情趣内衣| 久久精品日产第一区二区三区| 女人抽搐喷水高潮国产精品| 好吊色欧美一区二区三区四区| 99热这里只有精品首页| 国产伦精品一区二区三区高清版| 麻豆一二三区精品蜜桃| 亚洲永久在线观看| 日韩欧美中文字幕一区二区三区| 91久久国产综合久久蜜月精品| 亚洲免费看片| 国产精品久久久一区二区三区| 免费观看成人www动漫视频| 国模精品一区二区三区| 日韩大片在线免费观看| 免费在线成人av电影| 少妇一区二区视频| 先锋影音欧美| 国产精品久久久久蜜臀| 久久久久99精品成人片| 国产亚洲精品v| 日韩久久一级片| 日本aⅴ亚洲精品中文乱码| 欧美特黄aaa| 国产69精品久久777的优势| 丰满岳乱妇一区二区| 成人免费视频一区| 欧洲美一区二区三区亚洲| 国产精品污污网站在线观看| 精品一区二区在线观看视频| 日韩毛片高清在线播放| 国产精品二区一区二区aⅴ| 五月综合激情婷婷六月色窝| 国产女主播喷水视频在线观看 | 亚洲一区视频| 久久这里只精品| 激情久久五月天| 精品人妻一区二区三区日产| 国产日韩视频一区二区三区| 五月天激情丁香| 精品久久久久久久久久久久久 | www免费网站在线观看| 久久精品视频在线播放| 成年女人在线看片| 国产精品自产拍高潮在线观看| 成人国产精品| 国产精品国产精品| 欧美在线色图| 免费视频爱爱太爽了| 日本中文字幕一区二区有限公司| 免费黄频在线观看| 91毛片在线观看| 中文字幕求饶的少妇| 天天亚洲美女在线视频| 国产夫绿帽单男3p精品视频| 亚洲精品在线91| 亚洲www色| 国产精品69久久久久| 一区二区三区欧洲区| 日韩电影天堂视频一区二区| 欧美体内she精视频在线观看| www.浪潮av.com| 狠狠久久亚洲欧美| 久久精品老司机| 亚洲黄色片在线观看| 亚洲天堂中文字幕在线| 日韩精品久久久久| 男女视频在线| 国产精品444| 婷婷亚洲精品| 亚洲色成人www永久在线观看| 三级久久三级久久久| 右手影院亚洲欧美| 亚洲午夜私人影院| h片在线免费看| 中文字幕日韩精品在线| 免费成人动漫| 久久久久久欧美精品色一二三四 | 国产黄色精品网站| 毛片久久久久久| 在线免费观看不卡av| 五月激情丁香婷婷| 久久久久久久国产精品| 亚洲日本一区二区三区在线| 日韩资源av在线| 性xx色xx综合久久久xx| 国产精品300页| 亚洲国产aⅴ天堂久久| 国产福利视频导航| 久久精品国产久精国产思思| 欧美电影免费看| 欧美一区视久久| 久久精品男女| 国产精品无码午夜福利| 精品成人久久av| 天堂成人在线观看| 国产69久久精品成人| 婷婷精品在线观看| 免费av网址在线| 久久综合久久99| 国产精品免费精品一区| 亚洲а∨天堂久久精品喷水| av资源在线看片| 国产精品久久精品国产| 亚洲第一黄网| 国产黄色三级网站| 欧美日韩国产色| 国产资源在线播放| 日韩免费在线看| 精品国产乱码久久久久久蜜坠欲下 | 先锋影音久久久| 无码少妇精品一区二区免费动态| 日韩欧美精品网站| 国产女人在线观看| 国产精品一区久久| 忘忧草精品久久久久久久高清| 日本中文字幕观看| 亚洲精品欧美综合四区| 欧美熟女一区二区| 欧美综合激情网| 欧美日韩精品在线一区| 精品亚洲视频在线| 国产精品短视频| 深夜福利视频网站| 国产v综合ⅴ日韩v欧美大片| 日本一区二区高清不卡| 国产精品久久久久久久99| 亚洲黄色av一区| 日韩在线无毛| 国产精品久久久久久久久久东京| 久久国产小视频| 国产精品嫩草69影院| 日本韩国欧美三级|