青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

利用select函數可以完成非阻塞通信,它可以在用戶指定的時間內監聽一些句柄(文件描述符?)(一個句柄就是你給一個文件,設備,套接字(socket)或管道的一個名字, 以便幫助你記住你正處理的名字, 并隱藏某些緩存等的復雜性。),當readfds或writefds中映象的文件可讀或可寫或超時,本次select()就結束返回。程序員利用一組系統提供的宏在select()結束時便可判斷哪一文件可讀或可寫。

。

函數原型:

int select(int nfds, fd_set *readfds, fd_set *writefds,

fd_set *exceptfds, struct timeval *timeout);

ndfs:select監視的文件句柄數,視進程中打開的文件數而定,一般設為你要監視各文件

中的最大文件號加一。

readfds:select監視的可讀文件句柄集合。

writefds: select監視的可寫文件句柄集合。

exceptfds:select監視的異常文件句柄集合。

timeout:本次select()的超時結束時間。

函數返回值:

0表示超時

-1表示出錯

正數表示文件可讀或可寫


相關的宏:

FD_ZERO(fd_set *fdset):清空fdset與所有文件句柄的聯系。

FD_SET(int fd, fd_set *fdset):建立文件句柄fd與fdset的聯系。

FD_CLR(int fd, fd_set *fdset):清除文件句柄fd與fdset的聯系。

FD_ISSET(int fd, fd_set *fdset):檢查fdset聯系的文件句柄fd是否可讀寫,當>0表示可讀寫。


select只能監聽文件描述符(file descriptors),文件指針是不行的。通過int fileno(FILE* fp)函數可以完成文件指針到文件描述符的轉換。

#include<stdio.h>
#include
<stdlib.h>
#include
<string.h>
#include
<sys/time.h>
#include
<sys/types.h>
#include
<unistd.h>

int main(){
    
int fno = fileno(stdin);
// 得到sdtin的文件描述符
    fd_set fdR;
    
struct timeval timeout = {.tv_sec = 10, .tv_usec = 0};
    FD_ZERO(
&fdR);
    FD_SET(fno, 
&fdR);
    
char str[64];
    
int goOn = 1;
    
while(goOn){
        printf(
"goOning\n");
        
switch(select(fno + 1&fdR, NULL, NULL, &timeout)){
            
case -1:
                printf(
"select fail\n");
                goOn 
= 0;
                
break;
            
case 0:
                printf(
"select end\n");
                goOn 
= 0;
                
break;
            
default:
                scanf(
"%s", str);
                printf(
"str=%s\n", str);

        }
    }
}

代碼片段1:在指定時間內讀取stdin的數據。


代碼片段2:服務器在一定時間內接收子節點發來的數據報。


 

int socketfd = socket(AF_INET, SOCK_DGRAM, 0);
    …
    …
    fd_set fdR;
    
struct timeval timeout = {tv_sec:10, tv_usec:0};// 等待接收一定時間之后結束
    int goOn = 1;
    FD_ZERO(
&fdR);
    FD_SET(sockfd, 
&fdR);
    
while(goOn){
    
switch(select(sockfd + 1&fdR, NULL, NULL, &timeout)){
        
case -1:
            printf(
"select fail\n");
            goOn 
= 0;
            
break;
        
case 0:
            printf(
"select timeout\n");
            goOn 
= 0;
            
break;
        
default:
// 正常情況,讀取信息
            if((numbytes = recvfrom(sockfd, &cdt, sizeof(cdt), 0
                    (
struct sockaddr *)&their_addr, &addr_len)) == -1){
                printf(
"recvfrom fail\n");
            }
    }

參閱:
http://www.tuicool.com/articles/Rfeaie
posted on 2014-03-26 16:25 小鼠標 閱讀(4003) 評論(0)  編輯 收藏 引用 所屬分類: 本科畢設
<2014年3月>
2324252627281
2345678
9101112131415
16171819202122
23242526272829
303112345

常用鏈接

隨筆分類(111)

隨筆檔案(127)

friends

最新評論

  • 1.?re: 線段樹
  • 是這個樣子的,所以在OJ有時候“卡住”了也不要太灰心,沒準真的不是自己的原因呢。
    加油,祝你好運啦!
  • --小鼠標
  • 2.?re: 線段樹
  • 對于編程競賽來說,Java所需時間一般為C/C++的兩倍。合理的競賽給Java的時間限制是給C/C++的兩倍。
  • --傷心的筆
  • 3.?re: poj1273--網絡流
  • 過來看看你。
  • --achiberx
  • 4.?re: (轉)ubuntu11.10無法啟動無線網絡的解決方法
  • 膜拜大神。。查了一個下午資料終于在這里解決了問題。。神牛說的區域賽難道是ACM區域賽。。?
  • --Hang
  • 5.?re: 快速排序、線性時間選擇
  • 博主,謝謝你的文章。你的方法可以很好的處理分區基準在數組中重復的情況,書上的方法遇到這種輸入會堆棧溢出。書上給出了解釋但給的方法貌似不簡潔。
  • --lsxqw2004

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲美女在线看| 亚洲精品一区中文| 看片网站欧美日韩| 久久久免费av| 久久夜色精品一区| 蜜桃伊人久久| 欧美激情区在线播放| 欧美黄网免费在线观看| 欧美激情视频给我| 国产精品嫩草99av在线| 国产日本欧美一区二区三区| 国产欧美一区二区三区视频| 狠狠色丁香久久综合频道| 最新高清无码专区| 亚洲一区二区精品| 久久久另类综合| 亚洲国产欧美另类丝袜| 欧美激情第3页| 亚洲视频一区二区| 久久国产精品免费一区| 欧美大片91| 国产欧美日韩精品丝袜高跟鞋| 影音先锋成人资源站| 夜夜夜精品看看| 久久久久久国产精品mv| 亚洲日本激情| 久久精品一区蜜桃臀影院| 欧美人交a欧美精品| 国产中文一区二区三区| 一本色道久久99精品综合| 午夜视频在线观看一区| 欧美成人黑人xx视频免费观看| 99热精品在线观看| 久久久久99| 国产精品一级| 在线视频你懂得一区二区三区| 狂野欧美激情性xxxx欧美| 夜夜嗨av一区二区三区网页| 久久久久久久性| 国产欧美日韩不卡| 一区二区日韩免费看| 国产欧美精品久久| 亚洲卡通欧美制服中文| 久久国产精品久久久久久久久久| 亚洲激情在线观看| 久久久午夜视频| 国产欧美一区二区精品秋霞影院 | 精品999网站| 欧美影院在线| 亚洲天堂男人| 欧美视频一区在线| 亚洲精品孕妇| 亚洲国产天堂久久综合| 久久人人97超碰精品888| 国产综合色产| 老司机一区二区三区| 欧美一区二区三区在线视频 | 91久久久久久| 米奇777在线欧美播放| 久久精品免费播放| 禁久久精品乱码| 美女黄色成人网| 欧美**人妖| 亚洲毛片视频| 亚洲人在线视频| 欧美日韩国产三区| 亚洲视频狠狠| 一区二区三区产品免费精品久久75| 欧美激情乱人伦| 在线一区二区三区做爰视频网站| 亚洲人成网站999久久久综合| 欧美高清成人| 亚洲午夜激情| 午夜欧美理论片| 精品成人在线观看| 欧美激情一区在线观看| 欧美日韩国产成人精品| 午夜精品偷拍| 久久久精彩视频| 亚洲精品一区久久久久久| 在线亚洲伦理| 国外成人网址| 亚洲精品国产无天堂网2021| 欧美午夜精品久久久久免费视| 欧美一级大片在线免费观看| 久久精品一区二区三区中文字幕| 91久久久久久久久| 亚洲深夜福利| 亚洲国产高清在线| 一本综合久久| 伊人久久亚洲美女图片| 亚洲精品一区二区三区婷婷月| 国产精品久久久久永久免费观看| 久久精品理论片| 欧美国产精品v| 久久99在线观看| 欧美二区乱c少妇| 欧美在线短视频| 欧美高清视频www夜色资源网| 亚洲欧美日韩在线观看a三区| 久久久午夜电影| 国内成人精品2018免费看| 亚洲第一页自拍| 国产精品久久久久毛片软件| 美女国产一区| 国产女主播在线一区二区| 亚洲福利视频免费观看| 国产欧美一二三区| 中国亚洲黄色| 亚洲精品乱码视频| 欧美一区二区三区在线| 99综合精品| 麻豆91精品| 久久久久久久综合| 国产精品久久久久秋霞鲁丝| 欧美激情中文不卡| 好吊色欧美一区二区三区四区| 99精品欧美一区| 亚洲精品日韩在线观看| 久久久久久久久久久成人| 午夜亚洲福利| 国产精品激情| 一区二区三区精品久久久| 亚洲全部视频| 久久在精品线影院精品国产| 久久成人免费| 国产精品综合| 亚洲欧美日韩一区二区在线| 亚洲一二三区视频在线观看| 欧美精品18videos性欧美| 亚洲电影在线看| 亚洲三级电影全部在线观看高清| 久久先锋影音| 欧美成人资源| 亚洲国产精品毛片| 麻豆精品在线视频| 欧美成人蜜桃| 亚洲国产精品久久久久久女王| 久久综合国产精品台湾中文娱乐网| 久久久国产成人精品| 国产色爱av资源综合区| 欧美一区二区精品| 久久免费视频在线| 在线看欧美日韩| 蜜臀av性久久久久蜜臀aⅴ| 亚洲成人在线视频播放 | 国产精品美女www爽爽爽| 99热在线精品观看| 亚洲欧美日韩国产综合精品二区| 欧美日韩在线视频首页| 一区二区激情| 亚洲欧美自拍偷拍| 国产日本欧洲亚洲| 久久综合一区二区| 亚洲精选视频在线| 欧美在线免费观看视频| 国语精品中文字幕| 欧美福利小视频| 中文久久乱码一区二区| 久久av一区二区| 亚洲激情成人网| 国产精品高潮久久| 久久精品欧美| 亚洲国产日韩综合一区| 亚洲视频免费| 国产综合18久久久久久| 蜜臀91精品一区二区三区| 亚洲欧美日韩网| 在线播放视频一区| 欧美日韩免费观看一区| 午夜国产精品视频免费体验区| 久久夜色撩人精品| 一本色道88久久加勒比精品| 国产精品一二三| 欧美不卡激情三级在线观看| 中文亚洲欧美| 欧美激情第8页| 久久精品网址| 亚洲欧美99| 亚洲精品久久久蜜桃 | 亚洲一区二区免费看| 影音先锋日韩资源| 国产精品久久久久久久久久妞妞| 久久综合色一综合色88| 亚洲欧美精品中文字幕在线| 欧美国产先锋| 久久人体大胆视频| 午夜精品久久久久久久99黑人| 亚洲国产精品第一区二区| 国产嫩草一区二区三区在线观看| 欧美国产成人在线| 久久夜色精品国产亚洲aⅴ| 午夜精品短视频| 一区二区三区不卡视频在线观看 | 欧美电影免费观看| 欧美一区二区三区日韩视频| 亚洲精品久久久蜜桃 | 亚洲国产精品久久精品怡红院| 欧美一区二区黄| 一本一道久久综合狠狠老精东影业|