• <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精品| 久久精品中文字幕有码| 少妇人妻88久久中文字幕| 91精品国产高清久久久久久国产嫩草| 欧美精品一区二区久久| 久久久精品人妻一区二区三区蜜桃| 精品国产综合区久久久久久| 青青草原综合久久大伊人| 91亚洲国产成人久久精品| 99久久香蕉国产线看观香| 东京热TOKYO综合久久精品| 亚洲精品国产第一综合99久久| 久久久精品人妻一区二区三区四| 久久午夜福利电影| 久久99国产精一区二区三区| 国产精品久久久久久久人人看| 国产激情久久久久影院老熟女| 精品免费久久久久久久| 国产精品久久久久久久app| 国产精品无码久久综合网| 99国产欧美久久久精品蜜芽| 久久久久久精品无码人妻| 亚洲国产成人久久一区久久| 曰曰摸天天摸人人看久久久| 国产成人精品久久二区二区| 久久亚洲欧美国产精品| 日韩av无码久久精品免费| 四虎亚洲国产成人久久精品| 99久久亚洲综合精品成人| 日本一区精品久久久久影院| 国产精品久久久久久久久鸭 | 欧美一级久久久久久久大| 精品亚洲综合久久中文字幕| 久久亚洲精品无码AV红樱桃| 久久综合给合久久狠狠狠97色69 | 国内精品九九久久久精品|