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

Linux中消息隊列的使用

系統(tǒng) Linux
今天帶小伙伴們學習了消息隊列相關(guān)的內(nèi)容,先簡單介紹下消息隊列,然后對消息隊列相關(guān)的結(jié)構(gòu)及函數(shù)進行學習,最后擼代碼使用一下這些函數(shù)使用一下消息隊列,希望對大家有所幫助哈!

[[386753]]

今天帶小伙伴們學習了消息隊列相關(guān)的內(nèi)容,先簡單介紹下消息隊列,然后對消息隊列相關(guān)的結(jié)構(gòu)及函數(shù)進行學習,最后擼代碼使用一下這些函數(shù)使用一下消息隊列,希望對大家有所幫助哈!

1 消息隊列的概念及使用過程

1)消息隊列的概念

消息隊列就是一個消息的鏈表。一條消息可以看作一個數(shù)據(jù)記錄,此數(shù)據(jù)具有特定的格式。

進程可以按照特定的規(guī)則向隊列中添加(寫入)消息;其他的進程則可以從消息隊列中讀走消息。

2)消息隊列的應用場景

消息隊列本身就是IPC通信中的內(nèi)容,所以它主要用于進程間的通信。

消息有讀寫,所以發(fā)送的消息可以用于動作的通知信號,也可以接收數(shù)據(jù)然后做其他處理。

2 消息隊列相關(guān)的結(jié)構(gòu)及函數(shù)

0)消息隊列相關(guān)的結(jié)構(gòu)

每個隊列都有一個msqid_ds結(jié)構(gòu)與其相關(guān)聯(lián),結(jié)構(gòu)如下。

  1. struct msqid_ds  
  2.      struct ipc_perm msg_perm;     // 消息隊列的存取權(quán)限以及其他一些信息                     
  3.      time_t          msg_stime;    // 最近一次隊列接受消息的時間 
  4.      time_t          msg_rtime;    // 最近一次從隊列中取出消息的時間 
  5.      time_t          msg_ctime;    // 最近一次隊列發(fā)生改動的時間 
  6.      unsigned long   __msg_cbytes; // 隊列中消息的占用內(nèi)存的字節(jié)數(shù) 
  7.      msgqnum_t       msg_qnum;     // 隊列中當前的消息數(shù) 
  8.      msglen_t        msg_qbytes;   // 隊列所占用內(nèi)存的最大字節(jié)數(shù) 
  9.      pid_t           msg_lspid;    // 最近一次向隊列發(fā)送消息的進程的pid msgsnd 
  10.      pid_t           msg_lrpid;    // 最近一次從隊列中取出消息的進程的pid 
  11. }; 
  1. struct ipc_perm 
  2.      key_t key
  3.      ushort uid;         // 用戶id,有效的用戶ID和有效的組id(euid和egid)  
  4.      ushort gid; 
  5.      ushort cuid;        // 創(chuàng)建者的euid和egid  
  6.      ushort cgid; 
  7.      ushort mode;        // 訪問模式參見模式標志  
  8.      ushort seq;         // IPC對象使用頻率信息 
  9. }; 

1)msgget函數(shù)

msgget函數(shù)用于創(chuàng)建或打開消息隊列。

① 函數(shù)原型。

  1. int msgget(key_t key,int msgflg) 

② 頭文件。

  1. include <sys/ipc.h>  
  2.  
  3. include <sys/msg.h>  
  4.  
  5. include <sys/types.h>  

③ 參數(shù)。

key:鍵值。

msgflg:打開標志。IPC_CREAT:表明新創(chuàng)建的一個消息隊列。

④ 返回值。

成功:返回消息隊列的id。

失敗:-1。

2)msgsnd函數(shù)

msgsnd函數(shù)用于發(fā)送消息,即寫消息到消息隊列。

① 函數(shù)原型。

  1. int msgsnd(int msgid,const void *msgp,size_t msgsz,int msgflg) 

② 頭文件。

  1. include <sys/ipc.h>  
  2.  
  3. include <sys/types.h>  
  4.  
  5. include <sys/msg.h>  

③ 參數(shù)。

msgid:消息隊列的id。

msgp:指向要發(fā)送的消息。

msgsz:消息的長度。

msgflg:標志位。

④ 返回值。

成功:0。

失敗:-1。

3)msgrcv函數(shù)

msgrcv函數(shù)用于讀消息隊列,即從消息隊列接收消息。

① 函數(shù)原型。

  1. int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg) 
  2.  
  3. ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,intmsgflg) 

② 頭文件。

  1. #include <sys/ipc.h>  
  2.  
  3. #include <sys/types.h> 
  4.  
  5. #include <sys/msg.h>  

③ 參數(shù)。

msqid:消息隊列的id。

msgp:存放消息。

msgsz:希望取到的消息的最大長度。

msgtyp:消息的類型,分下面三種情況:

當 msgtyp = 0:忽略類型,直接取隊列中的第一條消息。

當 msgtyp > 0: 取消息隊列中類型等于msgtyp的第一條消息。

當 msgtyp < 0: 取類型比msgtyp的絕對值要小或等于的消息,如果有多條消息

滿足該條件,取類型最小的一條。

④ 返回值。

成功:實際接收到的消息的數(shù)據(jù)長度。

失敗:-1。

4)msgctl函數(shù)

msgctl函數(shù)用于操作消息隊列,比如進行消息隊列的刪除等等。

① 函數(shù)原型。

  1. int msgctl(int msqid,int cmd,struct msqid_ds *buf) 

② 頭文件。

  1. #include <sys/ipc.h> 
  2.  
  3. #include <sys/msg.h>  
  4.  
  5. #include <sys/types.h>  

③ 參數(shù)。

msqid:消息隊列的id。

cmd:消息隊列的操作命令,此參數(shù)指定對msqid指定的隊列要執(zhí)行的命令。

IPC_STAT:取此隊列的msqidds結(jié)構(gòu),并將它存放在buf指向的結(jié)構(gòu)中。

IPCSET:將字段msg_perm.uid、msg_perm.gid、msg_perm.mode和msg_qbytes從buf指向的結(jié)構(gòu)復制到與這個隊列相關(guān)的msqid_ds結(jié)構(gòu)中。

此命令只能由下列兩種進程執(zhí)行:

一種是其有效用戶ID等于msg_perm.cuid或msg perm.uid。

另一種是具有超級用戶特權(quán)的進程。只有超級用戶才能增加msg_qbytes的值。

IPC_RMID:從系統(tǒng)中刪除該消息隊列以及仍在該隊列中的所有數(shù)據(jù)。這種刪除立即生效。

仍在使用這一消息隊列的其他進程在它們下一次試圖對此隊列進行操作時,將得到EIDRM錯誤。

此命令只能由下列兩種進程執(zhí)行:

一種是其有效用戶ID等于msg_perm.cuid或msg_perm.uid。

另一種是具有超級用戶特權(quán)的進程。這3條命令(IPC_STAT、IPC_SET和IPC_RMID)也可用于信號量和共享存儲。

buf:獲取內(nèi)核中的msqid_ds結(jié)構(gòu),通常不用。

④ 返回值。

成功:0。

失敗:-1。

3 實例代碼

下面用兩個進程,給大家演示下消息隊列的使用過程。

實例代碼如下,說明都在代碼注釋中了,圖片。

SendQueue.c。

  1. #include<stdio.h> 
  2. #include<sys/types.h> 
  3. #include<sys/ipc.h> 
  4. #include<sys/msg.h> 
  5. #include<string.h> 
  6.  
  7. // 消息結(jié)構(gòu)體 
  8. struct msg 
  9.       long msgtype;       //消息的類型 
  10.       char msgtext[1024]; //消息的長度 
  11. }; 
  12.  
  13.  
  14. void main(int argc, char *argv[]) 
  15.       int msgid; 
  16.       char str[256]; 
  17.       struct msg msgst; 
  18.    
  19.       key_t key = ftok("/tmp",600); 
  20.  
  21.       //創(chuàng)建消息隊列  
  22.       msgid = msgget(key,0666 | IPC_CREAT); 
  23.  
  24.       //鍵盤輸入消息 
  25.       while(1) 
  26.       {        
  27.             //獲取消息數(shù)據(jù) 
  28.             printf("\nPlease enter a message to send,input 'end' to quit!\n\n"); 
  29.             scanf("%s",str); 
  30.  
  31.             strcpy(msgst.msgtext,str); 
  32.      
  33.             if(strncmp(str, "end", 3) == 0) 
  34.             { 
  35.                   printf("\n"); 
  36.                   break; 
  37.             } 
  38.  
  39.             //發(fā)送消息 
  40.             msgsnd(msgid,&msgst,sizeof(struct msg),0); 
  41.       } 
  42.  
  43.        //輸出消息隊列 
  44.        msgctl(msgid,IPC_RMID,0); 

ReceiveQueue.c。

  1. #include <unistd.h> 
  2. #include <stdlib.h> 
  3. #include <stdio.h> 
  4. #include <string.h> 
  5. #include <errno.h> 
  6. #include <sys/msg.h> 
  7.  
  8. // 消息結(jié)構(gòu)體 
  9. struct msg 
  10.       long msgtype; 
  11.       char msgtext[1024]; 
  12. }; 
  13.   
  14.   
  15. int main(int argc, char *argv[]) 
  16.       int RunFlag = 1;                         // 循環(huán)標志 
  17.       int msgid = -1;                          // 消息id 
  18.       long msgtp = 0;                          // 消息類型 
  19.   
  20.       struct msg msgst;                        // 消息結(jié)構(gòu)體變量 
  21.   
  22.       key_t key = ftok("/tmp",600);            // 創(chuàng)建一個鍵值 
  23.   
  24.       msgid = msgget(key, 0666 | IPC_CREAT);   //建立消息隊列 
  25.   
  26.       if(msgid == -1) 
  27.       { 
  28.             exit(1);                           // 異常退出 
  29.       } 
  30.   
  31.   
  32.       while(RunFlag)                           // 從隊列中獲取消息,直到遇到end消息為止 
  33.       { 
  34.             if(msgrcv(msgid,&msgst,sizeof(struct msg), msgtp, 0) == -1) 
  35.             { 
  36.                   exit(1);                     // 異常退出 
  37.             } 
  38.             printf("\nThe message received is: %s\n\n",msgst.msgtext); 
  39.    
  40.    
  41.             if(strncmp(msgst.msgtext, "end", 3) == 0) // 遇到end結(jié)束 
  42.             { 
  43.                   RunFlag = 0;                // 置退出循環(huán)標志 
  44.             } 
  45.     
  46.       } 
  47.   
  48.   
  49.       if(msgctl(msgid, IPC_RMID, 0) == -1)    // 刪除消息隊列 
  50.       { 
  51.             exit(1);                          // 異常退出 
  52.       } 
  53.         
  54.       exit(0);                                // 正常退出 

編譯程序,先運行接收程序,再運行發(fā)送程序,輸入要發(fā)送的消息,退出輸入end。

① 兩個終端運行結(jié)果如下:

② 單個終端運行結(jié)果如下:

本文轉(zhuǎn)載自微信公眾號「嵌入式雜牌軍」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系嵌入式雜牌軍公眾號。

 

責任編輯:武曉燕 來源: 嵌入式雜牌軍
相關(guān)推薦

2017-06-19 13:36:12

Linux進程消息隊列

2019-05-13 10:00:41

Linux進程間通信命令

2024-03-22 12:10:39

Redis消息隊列數(shù)據(jù)庫

2022-01-21 19:22:45

RedisList命令

2022-01-15 07:20:18

Redis List 消息隊列

2017-10-11 15:08:28

消息隊列常見

2010-01-21 11:23:49

Linux多線程同步消息隊列

2025-02-26 07:53:21

2024-10-16 15:11:58

消息隊列系統(tǒng)設計

2022-06-28 08:37:07

分布式服務器WebSocket

2023-11-07 10:01:34

2010-04-21 14:49:13

Unix消息隊列

2018-04-26 15:18:49

RTOS應用MPU

2024-06-05 06:37:19

2024-05-16 08:10:17

RabbitMQ軟件通信機制

2023-07-26 07:28:55

WebSocket服務器方案

2020-09-27 07:44:08

RabbitMQ投遞消息

2023-12-18 08:36:39

消息隊列微服務開發(fā)

2022-12-13 09:19:26

分布式消息隊列

2025-01-02 09:23:05

點贊
收藏

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

caoporen国产精品| 欧美日韩一级片网站| 国产一区二区三区奇米久涩| 色婷婷av国产精品| 日韩大片b站免费观看直播| 午夜一区二区三区不卡视频| 一本色道久久88综合亚洲精品ⅰ| 天天摸天天舔天天操| av资源在线| 国产精品色呦呦| 国产精品久久国产精品| 国产不卡在线观看视频| 不卡福利视频| 亚洲欧美自拍偷拍| 久久人人爽爽人人爽人人片av| 伊人久久成人网| 欧美色图17p| 国外成人在线直播| 久久久久999| 色一情一乱一伦一区二区三区日本 | 欧美军人男男激情gay| 日韩一区二区三区免费看 | 国产高潮在线| 中文字幕一区二区三区av| 国产亚洲精品美女久久久m| 亚洲视频久久久| 久久国产66| 欧美在线一区二区三区| 青草网在线观看| 午夜精品久久久久久久爽 | 日本成人黄色片| 国产香蕉在线视频| 999国产精品999久久久久久| 日韩精品在线播放| 精产国品一区二区三区| 久久青草视频| 在线视频观看一区| 国产精品后入内射日本在线观看| 在线不卡日本v二区707| 中文字幕第一区| 蜜桃视频日韩| 中文字幕精品无| 一区二区三区四区五区在线| 欧美成人在线影院| 日本一二三区在线观看| 日韩高清欧美| 中文字幕亚洲一区| 国产在线综合视频| 欧美猛男男男激情videos| 亚洲国产一区自拍| 日韩精品一区二区三区不卡| 麻豆免费在线| 无码av中文一区二区三区桃花岛| 国产在线播放一区二区| 精品国产av 无码一区二区三区| 美女性感视频久久| 国产精品尤物福利片在线观看| 天堂а√在线中文在线鲁大师| 国产成人3p视频免费观看| 日韩精品免费看| 日本中文字幕精品—区二区| 欧美舌奴丨vk视频| 在线观看91视频| 超碰在线播放91| 四虎国产精品永久在线国在线 | 久久免费视频网站| 久久精品国产亚洲AV无码男同| 欧美三级网页| 午夜欧美不卡精品aaaaa| 色播视频在线播放| 国产一区二区精品福利地址| 亚洲欧美在线一区| 人人爽人人爽人人片| 99久久99视频只有精品| 亚洲国产99精品国自产| av五月天在线| 91精品亚洲一区在线观看| 91麻豆精品91久久久久同性| 黑人无套内谢中国美女| 精品三级av在线导航| 亚洲人成毛片在线播放| 国产精品1区2区3区4区| 综合久久亚洲| 欧美亚洲成人xxx| 波多野结衣在线电影| 精品一区二区三区不卡| aa成人免费视频| 免费国产在线视频| 国产精品久久久久一区二区三区共| 天堂v在线视频| 2021天堂中文幕一二区在线观| 一本到不卡免费一区二区| 一本一道久久a久久综合蜜桃| 91麻豆精品国产综合久久久| 欧美久久久影院| 国产xxxxx在线观看| 国产成人精品一区二区三区视频| 这里只有精品视频在线观看| 性久久久久久久久久久| 欧美岛国激情| 69久久夜色精品国产69| 一级黄色短视频| 99久久精品国产导航| 一区二区三区三区在线| 日本电影在线观看| 欧美日韩精品一区二区天天拍小说 | 神马久久精品综合| 国产一区二区三区成人欧美日韩在线观看 | 激情文学综合插| 精品久久蜜桃| 91最新在线视频| 欧美亚洲高清一区| 国产男女激情视频| 麻豆国产精品| 中日韩午夜理伦电影免费| 日本免费在线播放| 国产呦精品一区二区三区网站| 国产精品美女久久| 国产 欧美 精品| ㊣最新国产の精品bt伙计久久| 黄色片久久久久| а√中文在线天堂精品| 久久激情视频免费观看| 特级毛片www| 成人av在线资源网站| 在线码字幕一区| 经典三级一区二区| 日韩电影中文字幕| 国产一级性生活| 国产一区二区三区在线看麻豆| 欧美一区2区三区4区公司二百| 男人天堂亚洲| 日韩精品一区二区三区视频在线观看| 日本污视频网站| 丝袜亚洲另类丝袜在线| 蜜桃成人在线| 国产99在线观看| 亚洲成年人在线播放| 秋霞欧美一区二区三区视频免费| 日韩高清在线一区| 欧美日韩免费观看一区| 一二三四视频在线中文| 日韩av在线免费观看| 国产无码精品久久久| 国产69精品一区二区亚洲孕妇| 日韩欧美亚洲日产国| 亚洲精品一级二级| 亚洲天堂精品在线| 国产91国语对白在线| 久久久99精品久久| 蜜臀av午夜一区二区三区| 在线看成人短视频| 欧美自拍视频在线| 黄色国产在线| 在线观看免费成人| 黄色av片三级三级三级免费看| 捆绑紧缚一区二区三区视频| 亚洲精品久久久久久一区二区| 草莓视频成人appios| 4438x亚洲最大成人网| 最新黄色av网址| 国产伦精品一区二区三区免费 | 国产探花一区| 国产精品黄色av| av在线中文| 欧美一区二区观看视频| 久久久久99精品成人片毛片| 老司机av网站| 黄色激情在线视频| 国产深夜男女无套内射| 亚洲人精品午夜射精日韩| www精品久久| 国产精品69页| 一道本视频在线观看| 中文字幕第88页| 欧美深夜福利视频| 美洲精品一卡2卡三卡4卡四卡| 91精品婷婷国产综合久久竹菊| 日本高清一二三区| 成人精品亚洲人成在线| 日韩欧美视频网站| 秋霞欧美视频| 国产成人av一区二区三区| 无遮挡爽大片在线观看视频| 在线观看亚洲视频| www.五月婷婷| 色久优优欧美色久优优| 97成人资源站| 91蝌蚪porny| 久久出品必属精品| 国产日韩专区| 国产高清免费在线| 人体久久天天| 91色视频在线导航| 中文字幕 在线观看| 爱福利视频一区| 婷婷激情四射网| 成人涩涩免费视频| 亚洲国产高清av| 最新成人av网站| 杨幂一区欧美专区| 欧美巨大xxxx| 999热视频在线观看| 亚洲精品.com| 97免费视频在线播放| 免费看美女视频在线网站| 色婷婷精品大在线视频| 加勒比婷婷色综合久久| 久久久久99精品国产片| 免费黄视频在线观看| 日本不卡的三区四区五区| 成人av在线播放观看| 日韩av二区| 久久久久久久久久久久久久久久av| 成人国产精品久久| 国产精品福利观看| 99爱在线视频| 久久99热这里只有精品国产| 亚洲视频tv| 亚洲一区二区久久久| 亚洲欧洲精品视频| 精品国产乱码久久久久久影片| 成人免费一级片| 欧美日韩免费观看中文| 九九热精品免费视频| 日韩一区欧美一区| 亚洲一区 欧美| 久久精品一二三| 亚洲国产第一区| 99久久婷婷国产综合精品电影| 欧美午夜性视频| 欧美理论在线| 亚洲午夜精品久久久久久浪潮| 免费看av成人| 蜜桃av噜噜一区二区三区| 粉嫩一区二区三区四区公司1| 亚洲影院污污.| 国产精品99久久免费| 91免费欧美精品| 99精品美女视频在线观看热舞 | 亚洲精品美女久久7777777| 蜜桃一区二区三区| 欧美日韩国产三区| 国产成人一区二区三区影院| 鲁鲁视频www一区二区| 网曝91综合精品门事件在线| 久久爱av电影| 日韩美女毛片| 欧美日韩在线一二三| 国产探花一区| 日韩欧美在线观看强乱免费| 你懂的一区二区三区| 日本一区精品| 日本在线电影一区二区三区| 亚洲精品不卡| 91精品天堂福利在线观看| 中文字幕日韩精品久久| 亚洲天堂一区二区三区四区| 国产911在线观看| 好看不卡的中文字幕| 青青青青草视频| 麻豆亚洲精品| 污网站免费在线| 激情五月激情综合网| 亚洲av无码专区在线播放中文| 成人免费视频caoporn| 国产精品无码永久免费不卡| 国产午夜精品久久久久久久| 国产传媒视频在线| 又紧又大又爽精品一区二区| 国产精品99无码一区二区| 疯狂欧美牲乱大交777| 中国精品一区二区| 日韩一区国产二区欧美三区| 黄片毛片在线看| 国产一区二区三区视频在线观看| 国产日产一区二区| 久久久噜噜噜久久| 欧美日韩电影免费看| 亚洲自拍中文字幕| 亚州精品视频| 中文字幕日韩精品久久| 亚洲精选91| 五月天中文字幕在线| 成人免费视频视频| 在线观看天堂av| 亚洲国产精品久久人人爱| 国产毛片欧美毛片久久久| 亚洲免费伊人电影| 99精品人妻国产毛片| 欧美精品久久99久久在免费线| 粉嫩小泬无遮挡久久久久久| 夜夜嗨av一区二区三区免费区 | 国产97色在线| 国产精区一区二区| 看高清中日韩色视频| 这里只有精品在线| 国产熟人av一二三区| 国产毛片精品一区| 一区二区伦理片| 亚洲h在线观看| 国产精品区在线观看| 亚洲欧美国产视频| 国产精品一品| 成人福利视频在线观看| 久久久加勒比| 精品久久sese| 欧美暴力喷水在线| 在线观看污视频| 日韩专区欧美专区| 亚洲国产精品第一页| 国产精品国产三级国产普通话蜜臀 | 日本电影一区二区| 欧美视频在线观看网站| 国产精品一二一区| 波多野结衣家庭教师在线观看| 亚洲成在人线在线播放| 91福利在线观看视频| 亚洲免费成人av电影| 91九色国产在线播放| 91久久精品美女高潮| 区一区二视频| 男人插女人下面免费视频| 91在线丨porny丨国产| 国产一级片播放| 日韩亚洲欧美成人一区| 亚乱亚乱亚洲乱妇| 国产激情久久久久| 国产尤物久久久| 欧美三级午夜理伦三级| 99视频一区二区三区| 国产一级片网址| 日韩精品综合一本久道在线视频| 免费看a在线观看| 91精品久久久久| 国产一区二区三区黄网站| 亚洲a∨一区二区三区| 日韩中文字幕麻豆| 鲁丝一区二区三区| 一本久久综合亚洲鲁鲁五月天| 午夜小视频免费| 91高潮在线观看| 亚洲第一二三区| 日韩av一二三四| 中文字幕av资源一区| 国产精品69精品一区二区三区| 欧美日韩在线精品一区二区三区激情综 | 亚洲最色的网站| 午夜精品在线播放| 欧美激情精品久久久久久大尺度| 婷婷综合国产| 亚洲一区二区中文| 亚洲综合婷婷| av影片在线播放| 亚洲成av人影院| 日韩精品视频在线观看一区二区三区| 欧美亚洲日本网站| 精品国产成人| 蜜臀一区二区三区精品免费视频| 国产精品私人影院| 国产手机av在线| 欧美激情国产高清| 欧美激情99| 日韩一级片播放| 国产精品国模大尺度视频| 国产视频在线免费观看| 97精品国产97久久久久久| 同性恋视频一区| 亚洲综合欧美激情| 亚洲女女做受ⅹxx高潮| 日本wwwxxxx| 国产成人av在线| 亚洲精品小说| av在线网站观看| 欧美日韩国产影片| 国产探花视频在线观看| 欧美精品七区| 国产一区二区久久| 国产精品久久久久久久妇| 在线日韩av观看| 中文字幕久久精品一区二区 | 日韩欧美电影一区二区| 国产在线不卡一卡二卡三卡四卡| 奇米影视第四色777| 在线日韩中文字幕| 51精品国产| 日本特黄a级片| 亚洲国产一区二区三区青草影视| 免费播放片a高清在线观看| 成人精品福利视频| 欧美一级视频| 亚洲成人生活片| 亚洲视频在线观看视频| 2020最新国产精品| 中文字幕永久视频| 性欧美疯狂xxxxbbbb| 在线观看国产原创自拍视频| 国产免费一区二区三区| 黑人巨大精品欧美黑白配亚洲| 黄色在线观看国产|