成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 簡析Linux網絡編程函數(shù)

簡析Linux網絡編程函數(shù)

熱門標簽:藍點外呼系統(tǒng) 撫順移動400電話申請 烏海智能電話機器人 在百度地圖標注車輛 貴陽教育行業(yè)電話外呼系統(tǒng) 400電話申請方案 威海人工外呼系統(tǒng)供應商 寧夏房產智能外呼系統(tǒng)要多少錢 做外呼系統(tǒng)的公司違法嗎

網絡編程的一些基本函數(shù):也是實現(xiàn)tcp協(xié)議通訊的基本步驟,實現(xiàn)代碼在最后,IP需要修改為自己的IP,即可通信;

1,創(chuàng)建套接字socket

函數(shù)原型:

#include<sys/types.h>
#include<sys/socket.h>
int socket(int domain, int type, int protocol);

參數(shù)列表:

domain參數(shù)有以下這些值

AF_INET:IPv4協(xié)議
AF_INET6:IPv6協(xié)議
AF_LOCAL:Unix域協(xié)議
AF_ROUTE:路由套接口
AF_KEY:密鑰套接口

type的值:

SOCKET_STREAM:雙向可靠數(shù)據(jù)流,對應TCP
SOCKET_DGRAM:雙向不可靠數(shù)據(jù)報,對應UDP
SOCKET_RAW:提供傳輸層以下的協(xié)議,可以訪問內部網絡接口,例如接收和發(fā)送ICMP報文

protocol得值:

type為SOCKET_RAW時需要設置此值說明協(xié)議類型,其他類型設置為0即可

函數(shù)的作用是創(chuàng)建一個指定格式的套接字并返回其描述符,成功返回描述符,失敗返回-1;

2,綁定套接字bind

函數(shù)原型:

#include<sys/types.h>
#include<sys/socket.h>
int bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen);

參數(shù)列表:

sockfd為之前創(chuàng)建的套接字描述符

my_addr是一個通用套接字結構體指針,在做tcp協(xié)議編程時通常使用sockaddr_in結構體

該結構體內容如下;

struct socketaddr_in
{
   unsigned short int sin_family;//對應地址族IP v4填AF_INTE
   uint16_t sin_port;//對應端口號
   struct in_addr sin_addr;//對應ip地址
   unsigned char sin_zero[8];
};
struct in_addr
{
   uint32_t s_addr;
};

addrlen為該上述結構體的大小,可以用sizeof求得;

在使用bind函數(shù)前需要先創(chuàng)建一個sockaddr_in類型的結構體,將服務器的信息保存到結構體中,然后將創(chuàng)建的套接字與之綁定;成功返回0,失敗返回-1;

在設置端口號和IP時先將結構體清空,如果是主函數(shù)傳參,那么對應的端口號和ip都是字符串格式,需要用函數(shù)轉換,轉換格式如下:

char port[]="8888"
char ip[]="192.168.1.1"
struct sockaddr_in seraddr'
seraddr.sin_port=htos(atoi(port))
seraddr.sin_addr.s_addr=inet_addr(ip);

3,創(chuàng)建監(jiān)聽;listen

函數(shù)原型:

int listen(int fd, int backlog);

參數(shù)列表:

fd為要監(jiān)聽的套接字描述符;backlog為監(jiān)聽隊列的大??;

(1) 執(zhí)行l(wèi)isten 之后套接字進入被動模式。

(2) 隊列滿了以后,將拒絕新的連接請求??蛻舳藢⒊霈F(xiàn)連接D 錯誤WSAECONNREFUSED。

(3) 在正在listen的套接字上執(zhí)行l(wèi)isten不起作用。

4,等待連接accept

函數(shù)原型:

#include <sys/socket.h>
 int accept(int s, struct sockaddr * addr, int * addrlen);

對比bind函數(shù)可以發(fā)現(xiàn)兩者的參數(shù)幾乎一樣,但是accept中的addr不被const修飾,也就是說addr是用來保存連接的客戶端的地址信息的,同楊addlen時返回的addr的大小;

所以accept函數(shù)的作用就是返回已連接的客戶端的文件描述符,并將客戶端的地址信息保存在一個新的sockaddr_in結構體中;鏈接失敗返回-1;

5, 收發(fā)消息send和recv

函數(shù)原型

 int send( SOCKET s, const char FAR *buf, int len, int flags );
int recv( SOCKET s, char FAR *buf, int len, int flags); 

該函數(shù)的參數(shù):

  • 第一個參數(shù)指定發(fā)送/接受端套接字描述符;
  • 第二個參數(shù)指明一個存放應用程序要發(fā)送數(shù)據(jù)的緩沖區(qū);
  • 第三個參數(shù)指明實際要發(fā)送/接收的數(shù)據(jù)的字節(jié)數(shù);
  • 第四個參數(shù)一般置0。

send的流程

這里只描述同步Socket的send函數(shù)的執(zhí)行流程。當調用該函數(shù)時,send先比較待發(fā)送數(shù)據(jù)的長度len和套接字s的發(fā)送緩沖的長度, 如果len大于s的發(fā)送緩沖區(qū)的長度,該函數(shù)返回SOCKET_ERROR;如果len小于或者等于s的發(fā)送緩沖區(qū)的長度,那么send先檢查協(xié)議是否正在發(fā)送s的發(fā)送緩沖中的數(shù)據(jù),如果是就等待協(xié)議把數(shù)據(jù)發(fā)送完,如果協(xié)議還沒有開始發(fā)送s的發(fā)送緩沖中的數(shù)據(jù)或者s的發(fā)送緩沖中沒有數(shù)據(jù),那么send就比較s的發(fā)送緩沖區(qū)的剩余空間和len,如果len大于剩余空間大小send就一直等待協(xié)議把s的發(fā)送緩沖中的數(shù)據(jù)發(fā)送完,如果len小于剩余空間大小send就僅僅把buf中的數(shù)據(jù)copy到剩余空間里(注意并不是send把s的發(fā)送緩沖中的數(shù)據(jù)傳到連接的另一端的,而是協(xié)議的,send僅僅是把buf中的數(shù)據(jù)copy到s的發(fā)送緩沖區(qū)的剩余空間里);

如果send函數(shù)copy數(shù)據(jù)成功,就返回實際copy的字節(jié)數(shù),如果send在copy數(shù)據(jù)時出現(xiàn)錯誤,那么send就返回SOCKET_ERROR;如果send在等待協(xié)議傳送數(shù)據(jù)時網絡斷開的話,那么send函數(shù)也返回SOCKET_ERROR。

要注意send函數(shù)把buf中的數(shù)據(jù)成功copy到s的發(fā)送緩沖的剩余空間里后它就返回了,但是此時這些數(shù)據(jù)并不一定馬上被傳到連接的另一端。如果協(xié)議在后續(xù)的傳送過程中出現(xiàn)網絡錯誤的話,那么下一個Socket函數(shù)就會返回SOCKET_ERROR。(每一個除send外的Socket函數(shù)在執(zhí)行的最開始總要先等待套接字的發(fā)送緩沖中的數(shù)據(jù)被協(xié)議傳送完畢才能繼續(xù),如果在等待時出現(xiàn)網絡錯誤,那么該Socket函數(shù)就返回SOCKET_ERROR)。

recv的流程

這里只描述同步Socket的recv函數(shù)的執(zhí)行流程。當應用程序調用recv函數(shù)時,recv先等待s的發(fā)送緩沖中的數(shù)據(jù)被協(xié)議傳送完畢,如果協(xié)議在傳送s的發(fā)送緩沖中的數(shù)據(jù)時出現(xiàn)網絡錯誤,那么recv函數(shù)返回SOCKET_ERROR,如果s的發(fā)送緩沖中沒有數(shù)據(jù)或者數(shù)據(jù)被協(xié)議成功發(fā)送完畢后,recv先檢查套接字s的接收緩沖區(qū),如果s接收緩沖區(qū)中沒有數(shù)據(jù)或者協(xié)議正在接收數(shù)據(jù),那么recv就一直等待,只到協(xié)議把數(shù)據(jù)接收完畢。當協(xié)議把數(shù)據(jù)接收完畢,recv函數(shù)就把s的接收緩沖中的數(shù)據(jù)copy到buf中(注意協(xié)議接收到的數(shù)據(jù)可能大于buf的長度,所以在這種情況下要調用幾次recv函數(shù)才能把s的接收緩沖中的數(shù)據(jù)copy完。recv函數(shù)僅僅是copy數(shù)據(jù),真正的接收數(shù)據(jù)是協(xié)議來完成的),recv函數(shù)返回其實際copy的字節(jié)數(shù)。如果recv在copy時出錯,那么它返回SOCKET_ERROR;如果recv函數(shù)在等待協(xié)議接收數(shù)據(jù)時網絡中斷了,那么它返回0。

tcp協(xié)議本身是可靠的,并不等于應用程序用tcp發(fā)送數(shù)據(jù)就一定是可靠的.不管是否阻塞,send發(fā)送的大小,并不代表對端recv到多少的數(shù)據(jù).

在阻塞模式下, send函數(shù)的過程是將應用程序請求發(fā)送的數(shù)據(jù)拷貝到發(fā)送緩存中發(fā)送并得到確認后再返回.但由于發(fā)送緩存的存在,表現(xiàn)為:如果發(fā)送緩存大小比請求發(fā)送的大小要大,那么send函數(shù)立即返回,同時向網絡中發(fā)送數(shù)據(jù);否則,send向網絡發(fā)送緩存中不能容納的那部分數(shù)據(jù),并等待對端確認后再返回(接收端只要將數(shù)據(jù)收到接收緩存中,就會確認,并不一定要等待應用程序調用recv);

在非阻塞模式下,send函數(shù)的過程僅僅是將數(shù)據(jù)拷貝到協(xié)議棧的緩存區(qū)而已,如果緩存區(qū)可用空間不夠,則盡能力的拷貝,返回成功拷貝的大小;如緩存區(qū)可用空間為0,則返回-1,同時設置errno為EAGAIN.

6,關閉套接字描述符close

函數(shù):

close(sockfd);

和文件操作一樣,套接字也是一個文件,使用完之后要關閉;

7,基于tcp協(xié)議的C/S服務器模型

圖解tcp模型

8,實現(xiàn)代碼

服務端:

#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <arpa/inet.h>
#include <unistd.h>
 
typedef struct sockaddr_in SIN;
typedef struct sockaddr SA;
 
int main(int argc,char *argv[])
{
    SIN seraddr;
    SIN cliaddr;
    int len=sizeof(SIN);
    //創(chuàng)建監(jiān)聽套接字
    int lisfd=socket(AF_INET,SOCK_STREAM,0);
    if(lisfd<0)
    {
        perror("socket");
        exit(0);
    }
    printf("創(chuàng)建套接字%d成功\n",lisfd);
    bzero(&seraddr,sizeof(seraddr));
    seraddr.sin_family=AF_INET;
    seraddr.sin_port=htons(8888);
    seraddr.sin_addr.s_addr=inet_addr("192.168.1.6");
    //綁定套接子
    int ret=bind(lisfd,(SA*)(&seraddr),len);
    if(ret<0)
    {
        perror("bind");
        exit(0);
    }
    printf("綁定成功\n");
    //開始監(jiān)聽
    ret=listen(lisfd,1024);
    if(ret<0)
    {
        perror("listen");
        exit(0);
    }
    printf("監(jiān)聽成功\n");
    //等待連接,將連接的套接字信息保存
    int clifd=accept(lisfd,(SA*)(&cliaddr),(socklen_t *)(&len));
    if(clifd<0)
    {
        perror("accept");
        exit(0);
    }
    printf("客戶端%d連接成功\n",clifd);
    //讀寫
    char readbuf[1024]={0};
    char sendbuf[1024]={0};
    while(1)
    {
        recv(clifd,readbuf,sizeof(readbuf),0);
        printf("recv:%s\n",readbuf);
        fgets(sendbuf,sizeof(sendbuf),stdin);
        send(clifd,sendbuf,sizeof(sendbuf),0);
    }
    //關閉套接字
    close(clifd);
    close(lisfd);
    return 0;
}

客戶端:

#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <arpa/inet.h>
#include <unistd.h>
 
typedef struct sockaddr_in SIN;
typedef struct sockaddr SA;
 
int main(int argc,char *argv[])
{
    SIN seraddr;
    //創(chuàng)建監(jiān)聽套接字
    int serfd=socket(AF_INET,SOCK_STREAM,0);
    if(serfd<0)
    {
        perror("socket");
        exit(0);
    }
    printf("創(chuàng)建套接字%d成功\n",serfd);
    bzero(&seraddr,sizeof(seraddr));
    seraddr.sin_family=AF_INET;
    seraddr.sin_port=htons(8888);
    seraddr.sin_addr.s_addr=inet_addr("192.168.1.6");
    //請求連接
    int ret=connect(serfd,(SA*)(&seraddr),sizeof(SIN));
    if(ret==-1)
    {
        perror("connect");
        exit(0);
    }
    printf("連接成功\n");
    //讀寫
    char senbuf[1024]={0};
    char readbuf[1024]={0};
    while(1)
    {
        fgets(senbuf,sizeof(senbuf),stdin);
        send(serfd,senbuf,sizeof(senbuf),0);
        recv(serfd,readbuf,sizeof(readbuf),0);
        printf("recv:%s\n",readbuf);
    }
    //關閉套接字
    close(serfd);
    return 0;
}

到此這篇關于簡析Linux網絡編程函數(shù)的文章就介紹到這了,更多相關Linux網絡編程函數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:蕪湖 泰州 慶陽 朝陽 那曲 周口 銅川 松原

巨人網絡通訊聲明:本文標題《簡析Linux網絡編程函數(shù)》,本文關鍵詞  簡析,Linux,網絡編程,函數(shù),;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《簡析Linux網絡編程函數(shù)》相關的同類信息!
  • 本頁收集關于簡析Linux網絡編程函數(shù)的相關信息資訊供網民參考!
  • 推薦文章
    99re国产在线播放| 欧美黑人一区二区| 国产福利微拍精品一区二区| 欧美精品一区二区三区中文字幕| 99高清免费国产自产拍| 亚洲一二在线观看| 久久影视一区二区| 日韩女优av电影在线观看| 国产一区二区三区不卡视频网站| 欧美成人高清视频在线观看| 夜夜嗨av一区二区三区中文字幕| 91免费精品国偷自产在线| 91制片厂免费观看| 色婷婷一区二区| 91精选在线观看| 四虎成人精品免费影院| 不卡一卡2卡3卡4卡精品在| www.国产视频.com| 国风产精品一区二区| 亚洲天堂伊人网| 你懂的免费在线观看视频网站| 欧美精品激情| 在线观看毛片网站| 免费网站看电影大片| 欧洲另类一二三四区| 亚洲一区二区三区爽爽爽爽爽| 精品国产乱码久久久久久88av| 日韩网站在线| 91年精品国产| 丁香啪啪综合成人亚洲| 亚洲精品天堂在线观看| 日本10禁啪啪无遮挡免费一区二区| 在线免费不卡电影| 五月婷婷视频在线| 午夜激情小视频| 涩涩涩在线视频| 久久久久亚洲av无码网站| 99re视频在线| 奇米亚洲欧美| 精品视频国产| 免费一级特黄毛片| 久久精品99国产| 成人av电影免费观看| 久久一区激情| 久久免费影院| 天天操 夜夜操| 色无极影院亚洲| 国产一线二线三线在线观看| 超碰在线公开97| 亚洲欧美一区二区三区四区五区| 4438全国亚洲精品观看视频| xxxx性bbbb欧美| 国产不卡视频在线| 懂色一区二区三区免费观看| 欧美天堂一区二区| 欧美自拍偷拍| 久久夜色精品国产噜噜av小说| 欧美在线网址| 小说区图片区综合久久亚洲| 性感美女福利视频| 波多野结衣视频一区| 色呦呦一区二区| 午夜国产精品影院在线观看| 久久精品视频日本| 三级视频中文字幕| 国产精品xxx| 羞羞色午夜精品一区二区三区| 亚洲黄色小说视频| 亚洲性色av| 女人扒开双腿让男人捅| 中文字幕永久在线观看| 久久亚洲精品小早川怜子| 成人三级网址| 尤物tv国产一区| 欧美精品首页| 亚洲精品白浆高清久久久久久| 91精品久久久久久久蜜月| 围产精品久久久久久久| 亚洲天堂成人在线视频| 国产大奶视频| 午夜69成人做爰视频| www.一区二区| 91久久精品视频| 免费黄色av片| 天堂在线观看免费视频| 亚州成人av在线| 国产一级免费大片| 在线不卡视频一区二区| 69日小视频在线观看| 91人妻一区二区三区蜜臀| 久久久综合九色合综国产精品| 亚洲一区 视频| 黄色片一区二区| √天堂资源在线| 97人妻一区二区精品视频| aa在线观看视频| 日韩激情精品| 六月丁香综合网| eeuss影院www在线| 亚洲图片 自拍偷拍| 亚洲日韩欧美视频一区| 国产日韩欧美综合精品| 欧美在线日韩| 欧美人与性动交α欧美精品济南到| 国产精品wwwwww| 久久久国产免费| 黄色大片在线看| 91大神福利视频| yjizz视频网站在线播放| 成人18免费入口| 午夜影院免费| 免费成人美女在线观看.| 国产中文字幕免费| 成人手机在线播放| 亚洲 国产 欧美 日韩| 麻豆视频在线观看免费网站黄| 国产免费成人在线视频| 亚洲一级片在线看| 成人高清在线视频| 黄无遮挡免费网站| 亚洲尤物av| 97色婷婷成人综合在线观看| 国产视频精品一区二区三区| 麻豆视频国产| www.久久热.com| 八戒八戒神马在线电影| 国产精品女同一区二区| 成人丝袜高跟foot| 欧美欧美午夜aⅴ在线观看| 在线观看精品国产| 国产亚洲一级| 亚洲观看黄色网| 国产人与zoxxxx另类91| 亚洲美女性生活| 成人黄色网页| 日本私人影院在线观看| 天堂av中文在线观看| 亚洲欧洲高清| 天天操天天干天天摸| 一本到12不卡视频在线dvd| 黄色小说在线观看视频| 波多野结衣高清视频| freemovies性欧美| 免费成人直播| wwwwwxxxx日本| 伊人中文字幕在线| 日韩电影在线免费| 丰满爆乳一区二区三区| 大地资源高清在线视频观看| 亚洲欧美国产日韩天堂区| 久久精品凹凸全集| 亚洲不卡免费视频| 91短视频版在线观看www免费| 久久av影视| 黄色一级片一级片| 在线播放黄色网址| 日本电影二区| 国产精品区一区二| 91精品久久久久| 精品爆乳一区二区三区无码av| 亚洲永久网站| 亚洲影院色在线观看免费| 亚洲毛片av| 亚洲欧美激情精品一区二区| 五月天婷婷基地| 在线中文字幕资源| 亚洲欧美综合在线精品| 一广人看www在线观看免费视频| 黑人巨大精品欧美一区二区三区| 99在线精品视频| 日韩高清在线播放| 国产日韩在线视频| 日韩精品免费综合视频在线播放| 品久久久久久久久久96高清| 午夜精品在线视频| 亚洲激情在线激情| 亚洲一区二区三区精品视频| 性高潮久久久久久| 欧美猛男同性videos| 欧美性猛交xx乱大交| 日韩性小视频| 欧美日韩视频在线播放| 亚洲热在线视频| 午夜一区二区三区四区| 99999精品| 亚洲无码精品国产| 国外成人福利视频| 国产偷窥洗澡视频| 国产亚洲高清一区| 一区二区三区在线高清| 国产成人在线免费观看| 欧美一级一区二区三区| 天天干天天操天天操| 日韩中文字幕视频网| 久久久123| 亚洲一区视频| 欧州一区二区| 国产一区二区免费看| 你懂的视频网站| 国产成人在线视频播放| 中国国产一级毛片| 国产成人av免费观看| 日韩一卡二卡在线| 在线观看成人影院| 日韩欧美三级在线观看| 亚洲综合在线五月| 国产精品视频福利一区二区| 中文字幕免费在线不卡| 久久久久久毛片免费看| 日韩一区二区三区三四区视频在线观看| 国产免费内射又粗又爽密桃视频| 三级黄色片播放| 野花视频免费在线观看| 午夜免费福利视频| 免费试看一区| 国产精品一区二区午夜嘿嘿嘿小说| 亚洲一区二区三区sesese| 91蜜桃婷婷狠狠久久综合9色| 亚洲免费专区| 天堂成人娱乐在线视频免费播放网站| 香蕉久久成人网| 91麻豆精品激情在线观看最新| 欧美系列在线观看| 成a人v在线播放| 欧美日韩视频免费观看| 九九**精品视频免费播放| 亚洲品质视频自拍网| 亚洲精品国产精品国自产网站| 热re久久精品国产99热| 国产一级片毛片| 精品视频在线一区二区| 欧美一区二区福利在线| 国产三级精品在线不卡| 91精品国产毛片武则天| 五月天婷婷在线观看视频| 精品日韩欧美一区二区| 欧美激情久久久久久久久久久| jizzjizz韩国| 久久影视免费观看| 麻豆tv在线| 野外性xxxxfreexxxxx欧美| 国产 日韩 欧美 综合| 黑巨茎大战欧洲金发美女| 91免费精品国偷自产在线| 亚洲精品国产精品国自产观看| 亚洲免费一级电影| 一本大道亚洲视频| 国产精品无码专区av免费播放| 欧美α欧美αv大片| 日本人妻熟妇久久久久久| 蜜臀久久精品久久久用户群体| 蜜桃精品久久久久久久免费影院| 国产精品免费福利| 蜜桃成人av| 2020天天干夜夜爽| 国产ts变态重口人妖hd| 国产欧美日韩精品专区| 国产成人黄色av| 综合久久五月天| 91骚色在线| 欧美成人久久| 最近中文字幕在线6| 免费视频一区二区| 国产丝袜精品丝袜| 成年免费在线观看| 亚洲qvod图片区电影| 免费一区二区三区在线观看| 成人免费视频77777| 国产激情欧美| 影音先锋导航| 日韩精品毛片| 国产综合图区| 拍拍拍无挡免费播放视频在线观看| 韩国av永久免费| 色婷五月综激情亚洲综合| 日韩av网站在线播放| 国产精品成人免费电影| 四虎成人免费观看在线网址| 亚洲国产精品国自产拍久久| 欧美影视一区二区| 欧美日韩精品一区二区三区在线观看| 色88888久久久久久影院按摩| 日韩精品一区国产| 精品自拍视频| av在线视屏| 欧美高跟鞋交xxxxxhd| 欧美岛国激情| 欧美 变态 另类 人妖| 久操免费在线视频| 亚洲人成影视在线观看| 精品亚洲a∨一区二区三区18| 亚洲AV无码成人精品区东京热| 高清乱码毛片入口| 99久久综合狠狠综合久久aⅴ| 黑人中文字幕一区二区三区| 国产欧美在线观看| 国产日本一区二区| 91亚洲精品在线观看| 日韩免费电影一区二区| 欧洲中文字幕国产精品| 欧美唯美清纯偷拍| 杨幂一区二区三区免费看视频| 91久久久在线| 国产精品视频久久久| 久久香蕉精品| 国产精品成久久久久| 久久久久久欧美精品色一二三四| 日本熟伦人妇xxxx| 一区二区在线免费视频| 亚洲成a人在线观看| 日干夜干天天干| 亚洲另类一区二区| 国产精品久久久亚洲第一牛牛| 欧美成人一区二区在线| 欧美猛烈性xbxbxbxb| 神马影院我不卡| www.男人天堂.com| 久久久99精品久久| 久久网中文字幕| 51一区二区三区| 精品肉辣文txt下载| 亚洲国产成人久久综合| av亚洲精华国产精华精华| 91九色鹿精品国产综合久久香蕉| 免费在线观看一区二区三区| 男人添女荫道口喷水视频| 国产情侣一区在线| 国产精品一区二区三区观看|