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

            Bugs

            MMORPG game develop.

            網絡編程 心得1



            以前項目里發現一個這樣的問題,當網絡服務進程關掉的時候,在立即啟動該服務,會有錯誤提示說port被占用了,監聽失敗。

            最近在看《unix 網絡編程》,在里面了解到了 鏈接時的三次握手 和 關閉時的四次握手,
            在關閉時最后會有一個TIME_WAIT狀態,這個狀態時間是TCP里最長的,是二倍MSL時間,大約在1-4分鐘。
            至于為什么要保留這個狀態和這么長的時間,請參考《unix 網絡編程》第二章 2.7.

            但這樣的問題是可以解決的,使用SO_REUSEADDR    enables local address reuse,可以在TIME_WAIT狀態下使用相同的PORT。

            int reuser_addr = 1;
             ::setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const void*)&reuse_addr, sizeof(reuse_addr));

            SO_REUSEADDR 的用途除了上面這種情況,還有三種分別是:
            *)在多網卡的時候,多進程可以使用不同IP,相同PORT。
            *)與上條差不多,在單進程使用使用不同IP,相同PORT。
            *)在UDP廣播的時候,可以在相同IP和PORT下使用,TCP則不行。

            posted on 2008-04-08 14:43 Bugs 閱讀(2900) 評論(2)  編輯 收藏 引用

            評論

            # re: 網絡編程 心得1 2008-04-09 12:40 追夢時代

            謝謝樓主,你說的問題我也遇到過  回復  更多評論   

            # re: 網絡編程 心得1 2008-04-11 13:45 Bugs

            根據ACE網絡編程下提到:
            在winsock2已經不存在這個問題了,不知道winsock1是否有,沒有機會做測試了,有機會的朋友,找個NT4環境測試下吧。  回復  更多評論   

            一本大道久久香蕉成人网| 性欧美大战久久久久久久久 | 久久99精品国产麻豆婷婷| 超级碰久久免费公开视频| 久久精品18| 欧美一区二区三区久久综合| 一级做a爰片久久毛片16| 欧美精品丝袜久久久中文字幕| 午夜欧美精品久久久久久久| yellow中文字幕久久网| 久久婷婷五月综合97色 | 一本大道久久东京热无码AV| 久久99精品国产自在现线小黄鸭 | 无码伊人66久久大杳蕉网站谷歌 | 久久无码国产专区精品| 国产V亚洲V天堂无码久久久| 国产精品久久久久久五月尺| 久久久久亚洲AV无码去区首| 国产亚洲精品美女久久久| 狠狠色丁香久久婷婷综合蜜芽五月| 久久综合久久综合久久综合| 久久精品一本到99热免费| 久久久久亚洲国产| 久久人人爽人人爽AV片| 91精品国产91久久久久久蜜臀| 亚洲AV日韩精品久久久久久| 亚洲精品国产第一综合99久久| 久久se精品一区精品二区国产| 人人狠狠综合久久亚洲88| 久久发布国产伦子伦精品| 日韩精品久久久肉伦网站| 久久亚洲私人国产精品vA | 国产激情久久久久影院老熟女| 久久久精品2019免费观看| 国产成人精品三上悠亚久久| 香蕉久久夜色精品国产2020| 97香蕉久久夜色精品国产| 人人妻久久人人澡人人爽人人精品| 久久综合鬼色88久久精品综合自在自线噜噜 | 日本精品久久久久久久久免费| 久久久久免费视频|