• <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>

            Sheppard Y

            keep thinking keep coding.

            epoll的各個事件觸發條件測試

            2016-07-03 日更新 
            此篇博客已經遷移到新博客,并做行文檢查和優化排版:

            1、listen fd,有新連接請求,觸發EPOLLIN。
            2、對端發送普通數據,觸發EPOLLIN。
            3、帶外數據,只觸發EPOLLPRI。
            4、對端正常關閉(程序里close(),shell下kill或ctr+c),觸發EPOLLIN和EPOLLRDHUP,但是不觸發EPOLLERR和EPOLLHUP。
                關于這點,以前一直以為會觸發EPOLLERR或者EPOLLHUP
                再man epoll_ctl看下后兩個事件的說明,這兩個應該是本端(server端)出錯才觸發的。
            5、對端異常斷開連接(只測了拔網線),沒觸發任何事件。




            附man:

            EPOLLIN
                          The associated file is available for read(2) operations.
            EPOLLOUT
                          The associated file is available for write(2) operations.
            EPOLLRDHUP
                          Stream  socket peer closed connection, or shut down writing half
                          of connection.  (This flag is especially useful for writing sim-
                          ple code to detect peer shutdown when using Edge Triggered moni-
                          toring.)
            EPOLLPRI
                          There is urgent data available for read(2) operations.
            EPOLLERR
                          Error condition happened  on  the  associated  file  descriptor.
                          epoll_wait(2)  will always wait for this event; it is not neces-
                          sary to set it in events.
            EPOLLHUP
                          Hang  up   happened   on   the   associated   file   descriptor.
                          epoll_wait(2)  will always wait for this event; it is not neces-
                          sary to set it in events.
            EPOLLET
                          Sets  the  Edge  Triggered  behavior  for  the  associated  file
                          descriptor.   The default behavior for epoll is Level Triggered.
                          See epoll(7) for more detailed information about Edge and  Level
                          Triggered event distribution architectures.
            EPOLLONESHOT (since Linux 2.6.2)
                          Sets  the  one-shot behavior for the associated file descriptor.
                          This means that after an event is pulled out with  epoll_wait(2)
                          the  associated  file  descriptor  is internally disabled and no
                          other events will be reported by the epoll interface.  The  user
                          must  call  epoll_ctl() with EPOLL_CTL_MOD to re-enable the file
                          descriptor with a new event mask.

            posted on 2009-03-12 17:17 Sheppard Y 閱讀(22864) 評論(0)  編輯 收藏 引用 所屬分類: c++

            <2014年1月>
            2930311234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            導航

            統計

            留言簿(1)

            隨筆分類(77)

            隨筆檔案(58)

            me

            基友

            同行

            業界前輩

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            91精品免费久久久久久久久| 亚洲午夜无码AV毛片久久| 久久精品国产精品亚洲毛片| 99精品国产99久久久久久97 | 99re这里只有精品热久久| 26uuu久久五月天| 久久久久久久波多野结衣高潮 | 欧美亚洲另类久久综合婷婷| 国产偷久久久精品专区 | 久久婷婷色综合一区二区| 伊人久久大香线蕉AV色婷婷色| 亚洲成人精品久久| 99精品久久精品一区二区| 久久久久18| 精品国产福利久久久| 精品国产乱码久久久久久呢| 久久精品亚洲男人的天堂| 国产午夜精品久久久久免费视| 精品久久久久久久国产潘金莲| 91精品国产91久久久久久| 久久人人爽人人爽人人AV| 久久久久国产一级毛片高清板| 久久精品成人免费看| 久久久久久人妻无码| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 久久中文字幕无码专区| 久久夜色tv网站| 国产精品久久久久久五月尺| 亚洲精品WWW久久久久久| 亚洲伊人久久大香线蕉综合图片| 久久久久综合网久久| 精品多毛少妇人妻AV免费久久| 99久久精品免费国产大片| 99久久婷婷国产综合亚洲| 亚洲狠狠婷婷综合久久久久| 久久精品中文无码资源站| 久久久久久国产a免费观看不卡| 99久久国产亚洲高清观看2024 | AV狠狠色丁香婷婷综合久久| 久久青青草原亚洲av无码app| 久久精品人人做人人妻人人玩|