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

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            關于SO_LINGER的使用說明

            Posted on 2009-02-03 10:58 Prayer 閱讀(1252) 評論(0)  編輯 收藏 引用 所屬分類: SOCKET

            SO_LINGER

               此選項指定函數close對面向連接的協議如何操作(如TCP)。缺省close操作是立即返回,如果有數據殘留在套接口緩沖區中則系統將試著將這些數據發送給對方。

            SO_LINGER選項用來改變此缺省設置。使用如下結構:

            struct linger {

                 int l_onoff; /* 0 = off, nozero = on */

                 int l_linger; /* linger time */

            };

            有下列三種情況:

            l_onoff0,則該選項關閉,l_linger的值被忽略,等于缺省情況,close立即返回;

            l_onoff為非0l_linger0,則套接口關閉時TCP夭折連接,TCP將丟棄保留在套接口發送緩沖區中的任何數據并發送一個RST給對方,而不是通常的四分組終止序列,這避免了TIME_WAIT狀態;

            l_onoff 為非0l_linger為非0,當套接口關閉時內核將拖延一段時間(由l_linger決定)。如果套接口緩沖區中仍殘留數據,進程將處于睡眠狀態,直 到(a)所有數據發送完且被對方確認,之后進行正常的終止序列(描述字訪問計數為0)或(b)延遲時間到。此種情況下,應用程序檢查close的返回值是非常重要的,如果在數據發送完并被確認前時間到,close將返回EWOULDBLOCK錯誤且套接口發送緩沖區中的任何數據都丟失close的成功返回僅告訴我們發送的數據(和FIN)已由對方TCP確認,它并不能告訴我們對方應用進程是否已讀了數據。如果套接口設為非阻塞的,它將不等待close完 成。

            l_linger的單位依賴于實現,4.4BSD假設其單位是時鐘滴答(百分之一秒),但Posix.1g規定單位為秒。


            久久久九九有精品国产| 大蕉久久伊人中文字幕| 亚洲国产精品无码久久一线| av无码久久久久不卡免费网站 | 国产精自产拍久久久久久蜜| 久久91精品综合国产首页| 久久综合给合久久国产免费 | 无码人妻久久一区二区三区蜜桃| 亚洲精品无码成人片久久| 99久久人妻无码精品系列| 久久强奷乱码老熟女| 久久精品无码一区二区日韩AV | 欧美久久综合性欧美| 国产精品99久久久精品无码| 99久久777色| 97久久精品无码一区二区天美| 日韩精品无码久久一区二区三| 国产精自产拍久久久久久蜜| 久久综合亚洲欧美成人| 亚洲欧美国产精品专区久久 | 99国产精品久久| 国产aⅴ激情无码久久| 国产成人精品综合久久久久| 狠狠色伊人久久精品综合网| 91精品国产91久久久久福利| 日韩AV无码久久一区二区| 久久99热这里只频精品6| 日韩欧美亚洲综合久久影院Ds | 国产午夜福利精品久久| 99久久久国产精品免费无卡顿| 亚洲va久久久噜噜噜久久狠狠| 亚洲午夜精品久久久久久app| 精品久久久久久国产牛牛app| 94久久国产乱子伦精品免费| 日韩久久久久中文字幕人妻| 国产亚洲美女精品久久久| 久久无码av三级| 国产精品久久久久AV福利动漫| 国产三级久久久精品麻豆三级| 欧美一区二区三区久久综| 久久精品国产亚洲AV嫖农村妇女|