乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      socket中的linger結(jié)構(gòu)體的作用

       _Le0n_ 2014-04-03

       TCP連接斷開(kāi)的時(shí)候調(diào)用closesocket函數(shù),已經(jīng)討論過(guò)有優(yōu)雅的斷開(kāi)和強(qiáng)制斷開(kāi),那么如何設(shè)置斷開(kāi)連接的方式呢?是通過(guò)設(shè)置socket描述符一個(gè)linger結(jié)構(gòu)體屬性。

      linger結(jié)構(gòu)體數(shù)據(jù)結(jié)構(gòu)如下:

      struct linger

      {

           int l_onoff;

           int l_linger;

      };

      有三種組合方式:

      第一種

          l_onoff = 0;

          l_linger忽略

          這種方式下,就是在closesocket的時(shí)候立刻返回,底層會(huì)將未發(fā)送完的數(shù)據(jù)發(fā)送完成后再釋放資源,也就是優(yōu)雅的退出。


      第二種

          l_onoff非零

          l_linger = 0;

          這種方式下,在調(diào)用closesocket的時(shí)候同樣會(huì)立刻返回,但不會(huì)發(fā)送未發(fā)送完成的數(shù)據(jù),而是通過(guò)一個(gè)REST包強(qiáng)制的關(guān)閉socket描述符,也就是強(qiáng)制的退出。


      第三種

          l_onoff非零

          l_linger > 0

          這種方式下,在調(diào)用closesocket的時(shí)候不會(huì)立刻返回,內(nèi)核會(huì)延遲一段時(shí)間,這個(gè)時(shí)間就由l_linger得值來(lái)決定。如果超時(shí)時(shí)間到達(dá)之前,發(fā)送完未發(fā)送的數(shù)據(jù)(包括FIN包)并得到另一端的確認(rèn),closesocket會(huì)返回正確,socket描述符優(yōu)雅性退出。否則,closesocket會(huì)直接返回錯(cuò)誤值,未發(fā)送數(shù)據(jù)丟失,socket描述符被強(qiáng)制性退出。需要注意的時(shí),如果socket描述符被設(shè)置為非堵塞型,則closesocket會(huì)直接返回值。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多