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

            Benjamin

            靜以修身,儉以養(yǎng)德,非澹薄無(wú)以明志,非寧?kù)o無(wú)以致遠(yuǎn)。
            隨筆 - 397, 文章 - 0, 評(píng)論 - 196, 引用 - 0
            數(shù)據(jù)加載中……

            TCP的端口復(fù)用

            端口復(fù)用最常用的用途應(yīng)該是防止服務(wù)器重啟時(shí)之前綁定的端口還未釋放或者程序突然退出而系統(tǒng)沒(méi)有釋放端口。此時(shí)如果設(shè)定了端口復(fù)用,
             則新啟動(dòng)的服務(wù)器進(jìn)程可以直接綁定端口。如果沒(méi)有設(shè)定端口復(fù)用,綁定會(huì)失敗,提示ADDR已經(jīng)在使用中——那只好等等再重試了。

            在TCP斷開鏈接時(shí)需要四次握手來(lái)斷開,當(dāng)兩端都關(guān)閉了read/write通道以后還是要等待一個(gè)TIME_WAIT時(shí)間(作用是在網(wǎng)絡(luò)中殘余的TCP包消失)。
            一般來(lái)說(shuō),一個(gè)端口釋放后會(huì)等待兩分鐘之后或三十秒才能再被使用,SO_REUSEADDR是讓端口釋放后立即就可以被再次使用。
                SO_REUSEADDR套接字選項(xiàng)通知內(nèi)核,如果TCP狀態(tài)位于 TIME_WAIT ,可以重用端口。如果TCP狀態(tài)位于其他狀態(tài),重用端口時(shí)依舊得到一個(gè)錯(cuò)誤信息,指明"地址已經(jīng)使用中"。如果你的服務(wù)程序停止后想立即重啟,而新套接字依舊使用同一端口,此時(shí)SO_REUSEADDR 選項(xiàng)非常有用。必須意識(shí)到,此時(shí)任何非期望數(shù)據(jù)到達(dá),都可能導(dǎo)致服務(wù)程序反應(yīng)混亂,不過(guò)這種可能,事實(shí)上幾率很小。
            套接字由相關(guān)五元組構(gòu)成,協(xié)議、本地地址、本地端口、遠(yuǎn)程地址、遠(yuǎn)程端口。SO_REUSEADDR 僅僅表示可以重用本地本地地址、本地端口,整個(gè)相關(guān)五元組還是唯一確定的。
            應(yīng)用方法:所有TCP服務(wù)器中,在調(diào)用bind之前設(shè)置SO_REUSEADDR套接口選項(xiàng);
            int bOptval=1;
            int retSetsockopt=setsockopt(gServerListenSock,SOL_SOCKET ,SO_REUSEADDR ,(char *)&bOptval,sizeof(bOptval));
            if (SOCKET_ERROR==retSetsockopt)
            {
            return 0;
            }



            端口復(fù)用允許在一個(gè)應(yīng)用程序可以把 n 個(gè)套接字綁在一個(gè)端口上而不出錯(cuò)。同時(shí),這 n 個(gè)套接字發(fā)送信息都正常,沒(méi)有問(wèn)題。
            但是,這些套接字并不是所有都能讀取信息,只有最后一個(gè)套接字會(huì)正常接收數(shù)據(jù),這個(gè)特性都為后門程序所應(yīng)用.
            SO_EXCLUSIVEADDRUSE和SO_REUSEPORT作用相反,不允許使用 端口復(fù)用,但這個(gè)參數(shù)只存在于windows中。

            注意:如果是服務(wù)器,新老socket都要加SO_REUSEADDR參數(shù);要想同地址同端口綁定,只能用在udp的多播。


            posted on 2018-12-11 23:30 Benjamin 閱讀(6531) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 雜談

            武侠古典久久婷婷狼人伊人| 久久99精品国产99久久6男男| 久久久久噜噜噜亚洲熟女综合| 久久一本综合| 久久久无码精品亚洲日韩按摩| 91精品观看91久久久久久| 国产欧美久久久精品影院| 久久国产精品久久久| 国产精品99久久久久久宅男小说| www性久久久com| 久久亚洲熟女cc98cm| 99精品久久久久久久婷婷| 久久一日本道色综合久久| 久久久久无码精品| 91精品国产91久久久久久青草| 99久久香蕉国产线看观香| 久久精品一区二区国产| 久久久精品人妻一区二区三区四| 久久精品国产99久久香蕉| 久久免费小视频| 亚洲精品无码久久千人斩| 久久这里的只有是精品23| 久久人搡人人玩人妻精品首页| 久久精品国产清高在天天线| 久久亚洲精品国产精品婷婷| 三级片免费观看久久| 久久精品国产清自在天天线| 久久久久综合网久久| 精品一区二区久久| 九九99精品久久久久久| 久久99精品久久久久久hb无码| 丁香色欲久久久久久综合网| 久久精品国产2020| 久久精品国产亚洲AV不卡| 久久久久久久女国产乱让韩| 国产精品99久久久久久宅男小说| 亚洲а∨天堂久久精品| 久久综合久久美利坚合众国| 狠狠色丁香久久婷婷综合图片| 狠狠色婷婷久久综合频道日韩 | 无码日韩人妻精品久久蜜桃|