• <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)于這點,以前一直以為會觸發(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 閱讀(22865) 評論(0)  編輯 收藏 引用 所屬分類: c++

            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導(dǎo)航

            統(tǒng)計

            留言簿(1)

            隨筆分類(77)

            隨筆檔案(58)

            me

            基友

            同行

            業(yè)界前輩

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            久久精品九九亚洲精品天堂| 国产精品VIDEOSSEX久久发布 | 99久久国产亚洲高清观看2024| 久久不射电影网| 亚洲国产天堂久久综合| 国内精品伊人久久久久AV影院| 国产精品视频久久| 亚洲欧美另类日本久久国产真实乱对白 | 欧美久久天天综合香蕉伊| 久久精品国产免费观看三人同眠| 久久er国产精品免费观看2| 午夜福利91久久福利| 久久福利青草精品资源站免费 | 久久中文字幕精品| 久久精品国产亚洲Aⅴ香蕉| .精品久久久麻豆国产精品| 久久精品国产亚洲AV久| 伊人久久大香线蕉综合热线| 国产精品久久久久久久午夜片 | 久久婷婷五月综合97色| 久久强奷乱码老熟女网站| 久久久精品免费国产四虎| 日日躁夜夜躁狠狠久久AV| 国产69精品久久久久9999APGF| 久久人人超碰精品CAOPOREN | 亚洲精品无码久久久久AV麻豆| 精品久久人人妻人人做精品| 一本久久a久久精品综合夜夜| 狠狠色丁香婷婷久久综合不卡| 人妻无码久久一区二区三区免费| 久久人做人爽一区二区三区 | 久久九九亚洲精品| 久久青青草原综合伊人| 91久久精品国产成人久久| 久久精品国产精品亚洲精品| 久久777国产线看观看精品| 久久青青草原国产精品免费| 99热精品久久只有精品| 国产精品99久久久久久猫咪| 久久精品18| 久久久久亚洲国产|