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

            C++的天空

            常用鏈接

            統(tǒng)計(jì)

            最新評(píng)論

            TCP收包小結(jié)

            先說說TCP收包的context(不定長包)。一般情況,發(fā)送方發(fā)送一個(gè)包,然后接收方收到一個(gè)包,這是最好處理的。第二種情況,當(dāng)每次發(fā)生的包比較小時(shí),發(fā)送數(shù)據(jù)時(shí),TCP會(huì)啟用優(yōu)化算法,將多個(gè)小包集中起來發(fā)送,以提高傳輸效率。此時(shí)接收方的recv buffer中,可能出現(xiàn)不止一個(gè)包。第三種情況,recv buffer中每次只一個(gè)包,但接收方?jīng)]及時(shí)取包,這時(shí)recv buffer中會(huì)積累多個(gè)包。
            理所當(dāng)然,TCP收包要考慮所有這些情況。一般來說有三種方法。第一種,定義好通訊協(xié)議,先收包頭,然后根據(jù)包頭中的消息真實(shí)大小,接收消息剩余部分。第二種方法,通訊協(xié)議規(guī)定好每個(gè)消息的開始和結(jié)束標(biāo)識(shí)符。然后每次recv得到的數(shù)據(jù)先放到一個(gè)大(比如你的最大packet的2倍)buffer中,最后再來分析這個(gè)buffer分包。第三種方法,先用recv+MSG_PEEK接收某個(gè)固定長度,然后對接收到的"包"進(jìn)行分析,然后做真正的recv操作。

            posted on 2008-03-28 11:28 ecopgm 閱讀(1139) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Server Programming

            久久精品国产福利国产秒| 日本精品久久久久影院日本| 国产产无码乱码精品久久鸭| 狠狠色婷婷综合天天久久丁香 | 久久人做人爽一区二区三区| 久久精品99久久香蕉国产色戒| 久久精品成人免费网站| 天天综合久久一二三区| 国内精品伊人久久久久| 久久精品国产亚洲αv忘忧草| 国产成人99久久亚洲综合精品| 影音先锋女人AV鲁色资源网久久 | 久久精品国产男包| 久久99精品国产| 麻豆AV一区二区三区久久| 日本加勒比久久精品| 99久久精品免费国产大片| 亚洲AV无码1区2区久久| 久久婷婷五月综合97色直播| 久久久久国产| 精品久久久久久无码免费| 99久久精品费精品国产一区二区| 久久久www免费人成精品| 久久青青草视频| 一本久久精品一区二区| 欧美精品福利视频一区二区三区久久久精品 | 亚洲国产精品久久久久久| 国产产无码乱码精品久久鸭| 天堂久久天堂AV色综合| 久久丫忘忧草产品| 久久精品国产久精国产一老狼| 国产精品久久久久久五月尺| 亚洲а∨天堂久久精品| 亚洲国产精品无码久久九九| 久久天天躁狠狠躁夜夜不卡| 久久亚洲精品无码播放| 亚洲国产一成久久精品国产成人综合 | 无码国内精品久久人妻| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 亚洲精品国精品久久99热一| 久久久噜噜噜久久熟女AA片|