• <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 日更新 
            此篇博客已經(jīng)遷移到新博客,并做行文檢查和優(yōu)化排版:

            1、listen fd,有新連接請求,觸發(fā)EPOLLIN。
            2、對端發(fā)送普通數(shù)據(jù),觸發(fā)EPOLLIN。
            3、帶外數(shù)據(jù),只觸發(fā)EPOLLPRI。
            4、對端正常關(guān)閉(程序里close(),shell下kill或ctr+c),觸發(fā)EPOLLIN和EPOLLRDHUP,但是不觸發(fā)EPOLLERR和EPOLLHUP。
                關(guān)于這點(diǎn),以前一直以為會觸發(fā)EPOLLERR或者EPOLLHUP
                再man epoll_ctl看下后兩個事件的說明,這兩個應(yīng)該是本端(server端)出錯才觸發(fā)的。
            5、對端異常斷開連接(只測了拔網(wǎng)線),沒觸發(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 閱讀(22850) 評論(0)  編輯 收藏 引用 所屬分類: c++

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            導(dǎo)航

            統(tǒng)計(jì)

            留言簿(1)

            隨筆分類(77)

            隨筆檔案(58)

            me

            基友

            同行

            業(yè)界前輩

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            免费国产99久久久香蕉| 久久精品国产久精国产果冻传媒| 久久精品国产半推半就| 久久精品视屏| 亚洲欧美日韩中文久久| 国产一区二区精品久久凹凸| 国产成人精品综合久久久久| 天天久久狠狠色综合| 亚洲国产精品无码久久青草| 久久精品国产福利国产秒| 7777精品伊人久久久大香线蕉| 91视频国产91久久久| 亚洲日韩欧美一区久久久久我| 久久精品午夜一区二区福利| 亚洲国产成人久久综合一区77| 人人狠狠综合久久亚洲婷婷| 囯产精品久久久久久久久蜜桃 | 久久精品国产亚洲av麻豆蜜芽| 久久精品草草草| 久久亚洲精品无码AV红樱桃| 亚洲欧美久久久久9999 | 99久久无色码中文字幕人妻| 久久精品国产亚洲av瑜伽| 久久久久久无码Av成人影院 | 粉嫩小泬无遮挡久久久久久| 久久综合亚洲色一区二区三区| 国产精品久久久久久久午夜片| 久久久久久久人妻无码中文字幕爆| 麻豆久久久9性大片| 久久久精品国产亚洲成人满18免费网站 | 无码日韩人妻精品久久蜜桃 | 午夜精品久久久久久久| 久久午夜无码鲁丝片秋霞 | 久久久久久国产精品美女| 久久国产精品99精品国产987| 久久久久亚洲AV无码麻豆| 久久久久久久精品成人热色戒| 日日狠狠久久偷偷色综合0| 久久人人爽人人精品视频| 久久99精品久久久久久齐齐| 久久99精品国产麻豆婷婷|