• <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>
            posts - 311, comments - 0, trackbacks - 0, articles - 0
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

              前面一直都在說(shuō)接收數(shù)據(jù)時(shí)的處理方法,我們應(yīng)該用專(zhuān)門(mén)的IO線(xiàn)程,接收到完整的消息包后加入到主線(xiàn)程的消息隊(duì)列,但是主線(xiàn)程如何發(fā)送數(shù)據(jù)還沒(méi)有探討過(guò)。



              一般來(lái)說(shuō)最直接的方法就是邏輯線(xiàn)程什么時(shí)候想發(fā)數(shù)據(jù)了就直接調(diào)用相關(guān)的socket API發(fā)送,這要求服務(wù)器的玩家對(duì)象中保存其連接的socket句柄。但是直接send調(diào)用有時(shí)候有會(huì)存在一些問(wèn)題,比如遇到系統(tǒng)的發(fā)送緩沖區(qū)滿(mǎn)而阻塞住的情況,或者只發(fā)送了一部分?jǐn)?shù)據(jù)的情況也時(shí)有發(fā)生。我們可以將要發(fā)送的數(shù)據(jù)先緩存一下,這樣遇到未發(fā)送完的,在邏輯線(xiàn)程的下一次處理時(shí)可以接著再發(fā)送。

              考慮數(shù)據(jù)緩存的話(huà),那這里這可以有兩種實(shí)現(xiàn)方式了,一是為每個(gè)玩家準(zhǔn)備一個(gè)緩沖區(qū),另外就是只有一個(gè)全局的緩沖區(qū),要發(fā)送的數(shù)據(jù)加入到全局緩沖區(qū)的時(shí)候同時(shí)要指明這個(gè)數(shù)據(jù)是發(fā)到哪個(gè)socket的。如果使用全局緩沖區(qū)的話(huà),那我們可以再進(jìn)一步,使用一個(gè)獨(dú)立的線(xiàn)程來(lái)處理數(shù)據(jù)發(fā)送,類(lèi)似于邏輯線(xiàn)程對(duì)數(shù)據(jù)的處理方式,這個(gè)獨(dú)立發(fā)送線(xiàn)程也維護(hù)一個(gè)消息隊(duì)列,邏輯線(xiàn)程要發(fā)數(shù)據(jù)時(shí)也只是把數(shù)據(jù)加入到這個(gè)隊(duì)列中,發(fā)送線(xiàn)程循環(huán)取包來(lái)執(zhí)行send調(diào)用,這時(shí)的阻塞也就不會(huì)對(duì)邏輯線(xiàn)程有任何影響了。

              采用第二種方式還可以附帶一個(gè)優(yōu)化方案。一般對(duì)于廣播消息而言,發(fā)送給周?chē)婕业臄?shù)據(jù)都是完全相同的,我們?nèi)绻捎媒o每個(gè)玩家一個(gè)緩沖隊(duì)列的方式,這個(gè)數(shù)據(jù)包將需要拷貝多份,而采用一個(gè)全局發(fā)送隊(duì)列時(shí),我們只需要把這個(gè)消息入隊(duì)一次,同時(shí)指明該消息包是要發(fā)送給哪些socket的即可。有關(guān)該優(yōu)化的說(shuō)明在云風(fēng)描述其連接服務(wù)器實(shí)現(xiàn)的blog文章中也有講到,有興趣的可以去閱讀一下。
            亚洲AV日韩AV永久无码久久| 激情伊人五月天久久综合| 久久99精品国产麻豆婷婷| 亚洲欧美国产精品专区久久 | 伊人久久久AV老熟妇色| 久久久91精品国产一区二区三区 | 久久99九九国产免费看小说| 久久久一本精品99久久精品88| 青青青国产精品国产精品久久久久 | 久久人人爽人人人人片av| 久久国产亚洲精品麻豆| 亚洲国产一成人久久精品| 精品久久综合1区2区3区激情| 久久久久亚洲av无码专区导航| 久久AⅤ人妻少妇嫩草影院| 久久婷婷五月综合色高清 | 久久久久久国产精品免费无码| 久久久久久青草大香综合精品| 72种姿势欧美久久久久大黄蕉| 99久久国产宗和精品1上映 | 久久精品国产免费观看| 久久久久亚洲?V成人无码| 国产精品女同一区二区久久| 午夜精品久久久久久99热| 国产偷久久久精品专区| 国产精品久久婷婷六月丁香| 欧美性大战久久久久久| 久久久久久A亚洲欧洲AV冫| 99久久婷婷国产一区二区| 久久精品国产亚洲沈樵| 国内精品久久久人妻中文字幕| 亚洲va中文字幕无码久久不卡| 久久人人爽人人爽人人片AV麻烦 | 伊人久久大香线蕉AV一区二区| 久久成人精品| 亚洲精品高清一二区久久| 日产久久强奸免费的看| 色婷婷久久综合中文久久一本| 久久久久久久久久久| 国产aⅴ激情无码久久| 香蕉久久av一区二区三区|