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

            亚洲国产成人乱码精品女人久久久不卡| 久久精品亚洲男人的天堂| 9191精品国产免费久久| 国产精品久久久天天影视| 久久亚洲精品中文字幕三区| 国产精品久久新婚兰兰| 狠狠色综合网站久久久久久久高清 | 久久香蕉国产线看观看精品yw| 久久久久久精品免费看SSS| 漂亮人妻被黑人久久精品| 国产成人精品久久一区二区三区 | 色婷婷综合久久久中文字幕 | 狠狠色丁香婷婷久久综合不卡| 色综合久久综精品| 午夜精品久久久久久毛片| 中文字幕成人精品久久不卡| 国产精品gz久久久| 久久精品亚洲中文字幕无码麻豆 | 国产综合精品久久亚洲| 久久国产劲爆AV内射—百度| 性高湖久久久久久久久| 精品久久久久久国产牛牛app| 久久久久亚洲av综合波多野结衣| 99999久久久久久亚洲| 久久99这里只有精品国产| 久久久九九有精品国产| 日韩人妻无码精品久久久不卡| 久久99精品久久久久久野外| 中文字幕亚洲综合久久菠萝蜜| 国产精品综合久久第一页| 日韩精品久久久肉伦网站| 一本一本久久a久久精品综合麻豆| 大伊人青草狠狠久久| 色狠狠久久AV五月综合| 久久精品视频一| 国产精品久久久久久久久软件| 久久婷婷色综合一区二区| 精品久久久久久无码国产| segui久久国产精品| 91精品国产91久久久久久青草| 久久99热只有频精品8|