• <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的各個事件觸發(fā)條件測試

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

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




            附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 閱讀(22863) 評論(0)  編輯 收藏 引用 所屬分類: c++

            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            導航

            統(tǒng)計

            留言簿(1)

            隨筆分類(77)

            隨筆檔案(58)

            me

            基友

            同行

            業(yè)界前輩

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            国产91久久精品一区二区| 久久综合一区二区无码| 亚洲精品无码久久久久去q| 无码超乳爆乳中文字幕久久 | 色综合久久88色综合天天| 久久婷婷综合中文字幕| 久久久久久青草大香综合精品| 久久精品国产99久久香蕉| 精品久久久久久国产| 久久国产精品成人免费| 久久人妻无码中文字幕| 久久99精品国产一区二区三区| 久久精品成人欧美大片| 色88久久久久高潮综合影院| 精品久久久久中文字| 精品国产乱码久久久久久1区2区 | 久久影视综合亚洲| 老色鬼久久亚洲AV综合| 午夜视频久久久久一区| 狠狠色婷婷综合天天久久丁香| 亚洲精品无码久久久| 国产精品成人久久久久三级午夜电影 | 色欲综合久久躁天天躁蜜桃| 国产精品热久久毛片| 亚洲狠狠婷婷综合久久蜜芽| 久久久精品久久久久久| 日本免费久久久久久久网站| 精品少妇人妻av无码久久| 中文成人久久久久影院免费观看| 91麻精品国产91久久久久| 日本强好片久久久久久AAA | 久久婷婷五月综合97色| 久久久精品久久久久影院| 久久国产免费直播| 精品久久人人做人人爽综合| 94久久国产乱子伦精品免费 | 久久噜噜电影你懂的| 亚洲成色999久久网站| 91久久精品无码一区二区毛片| 久久福利青草精品资源站免费| 日韩精品久久久久久久电影蜜臀|