青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴(yán)以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

IOCP中在WSASend以及WSARecv的時(shí)候出現(xiàn)WSA_IO_PENDING情況的說(shuō)明

轉(zhuǎn)載自:http://www.doserver.net/read.php/2063.htm


應(yīng)該是windows網(wǎng)絡(luò)編程第二版里面提到過(guò)。現(xiàn)在整理一下。
1:在IOCP中投遞WSASend返回WSA_IO_PENDING的時(shí)候,表示異步投遞已經(jīng)成功,但是稍后發(fā)送才會(huì)完成。這其中涉及到了三個(gè)緩沖區(qū)。
網(wǎng)卡緩沖區(qū),TCP/IP層緩沖區(qū),程序緩沖區(qū)。
情況一:調(diào)用WSASend發(fā)送正確的時(shí)候(即立即返回,且沒(méi)有錯(cuò)誤),TCP/IP將數(shù)據(jù)從程序緩沖區(qū)中拷貝到TCP/IP層緩沖區(qū)中,然后不鎖定該程序緩沖區(qū),由上層程序自己處理。TCP/IP層緩沖區(qū)在網(wǎng)絡(luò)合適的時(shí)候,將其數(shù)據(jù)拷貝到網(wǎng)卡緩沖區(qū),進(jìn)行真正的發(fā)送。
情況二:調(diào)用WSASend發(fā)送錯(cuò)誤,但是錯(cuò)誤碼是WSA_IO_PENDING的時(shí)候,表示此時(shí)TCP/IP層緩沖區(qū)已滿,暫時(shí)沒(méi)有剩余的空間將程序緩沖區(qū)的數(shù)據(jù)拷貝出來(lái),這時(shí)系統(tǒng)將鎖定用戶(hù)的程序緩沖區(qū),按照書(shū)上說(shuō)的WSASend指定的緩沖區(qū)將會(huì)被鎖定到系統(tǒng)的非分頁(yè)內(nèi)存中。直到TCP/IP層緩沖區(qū)有空余的地方來(lái)接受拷貝我們的程序緩沖區(qū)數(shù)據(jù)才拷貝走,并將給IOCP一個(gè)完成消息。
情況三:調(diào)用WSASend發(fā)送錯(cuò)誤,但是錯(cuò)誤碼不是WSA_IO_PENDING,此時(shí)應(yīng)該是發(fā)送錯(cuò)誤,應(yīng)該釋放該SOCKET對(duì)應(yīng)的所有資源。

2:在IOCP中投遞WSARecv的時(shí)候,情況相似。
情況一:調(diào)用WSARecv正確,TCP/IP將數(shù)據(jù)從TCP/IP層緩沖區(qū)拷貝到緩沖區(qū),然后由我們的程序自行處理了。清除TCP/IP層緩沖區(qū)數(shù)據(jù)。
情況二:調(diào)用WSARecv錯(cuò)誤,但是返回值是WSA_IO_PENDING,此時(shí)是因?yàn)門(mén)CP/IP層緩沖區(qū)中沒(méi)有數(shù)據(jù)可取,系統(tǒng)將會(huì)鎖定我們投遞的WSARecv的buffer,直到TCP/IP層緩沖區(qū)中有新的數(shù)據(jù)到來(lái)。
情況三:調(diào)用WSARecv錯(cuò)誤,錯(cuò)誤值不是WSA_IO_PENDING,此時(shí)是接收出錯(cuò),應(yīng)該釋放該SOCKET對(duì)應(yīng)的所有資源。

在以上情況中有幾個(gè)非常要注意的事情:
系統(tǒng)鎖定非分頁(yè)內(nèi)存的時(shí)候,最小的鎖定大小是4K(當(dāng)然,這個(gè)取決于您系統(tǒng)的設(shè)置,也可以設(shè)置小一些,在注冊(cè)表里面可以改,當(dāng)然我想這些數(shù)值微軟應(yīng)該比我們更知道什么合適了),所以當(dāng)我們投遞了很多WSARecv或者WSASend的時(shí)候,不管我們投遞的Buffer有多大(0除外),系統(tǒng)在出現(xiàn)IO_PENGDING的時(shí)候,都會(huì)鎖定我們4K的內(nèi)存。這也就是經(jīng)常有開(kāi)發(fā)者出現(xiàn)WSANOBUF的情況原因了。

我們?cè)诮鉀Q這個(gè)問(wèn)題的時(shí)候,要針對(duì)WSASend和WSARecv做處理
1:投遞WSARecv的時(shí)候,可以采用一個(gè)巧妙的設(shè)計(jì),先投遞0大小Buf的WSARecv,如果返回,表示有數(shù)據(jù)可以接收,我們開(kāi)啟真正的recv將數(shù)據(jù)從TCP/IP層緩沖區(qū)取出來(lái),直到WSA_IO_PENGDING.
2:對(duì)投遞的WSARecv以及WSASend進(jìn)行計(jì)數(shù)統(tǒng)計(jì),如果超過(guò)了我們預(yù)定義的值,就不進(jìn)行WSASend或者WSARecv投遞了。
3:現(xiàn)在我們應(yīng)該就可以明白為什么WSASend會(huì)返回小于我們投遞的buffer空間數(shù)據(jù)值了,是因?yàn)門(mén)CP/IP層緩沖區(qū)小于我們要發(fā)送的緩沖區(qū),TCP/IP只會(huì)拷貝他剩余可被Copy的緩沖區(qū)大小的數(shù)據(jù)走,然后給我們的WSASend的已發(fā)送緩沖區(qū)設(shè)置為移走的大小,下一次投遞的時(shí)候,如果TCP/IP層還未被發(fā)送,將返回WSA_IO_PENGDING。
4:在很多地方有提到,可以關(guān)閉TCP/IP層緩沖區(qū),可以提高一些效率和性能,這個(gè)從上面的分析來(lái)看,有這個(gè)可能,要實(shí)際的網(wǎng)絡(luò)情況去實(shí)際分析了。

                                                                               -EOF-

posted on 2011-01-13 02:48 楊粼波 閱讀(1105) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            性欧美暴力猛交另类hd| 国产一区深夜福利| 亚洲欧洲三级电影| 欧美激情一区二区三区蜜桃视频 | 亚洲一区二区三区色| 亚洲人成77777在线观看网| 久久一区中文字幕| 亚洲精品一区二区在线观看| 91久久精品国产91久久性色tv | 亚洲图片欧美午夜| 国产欧美日韩免费看aⅴ视频| 久久免费一区| 免费观看欧美在线视频的网站| 亚洲欧洲日韩综合二区| 一本一本久久a久久精品牛牛影视| 国产精品国产三级国产专播精品人| 亚洲欧美日韩一区| 久久av一区| 99re6这里只有精品| 在线视频亚洲| 激情小说另类小说亚洲欧美| 亚洲国产精品一区二区www| 欧美日韩人人澡狠狠躁视频| 欧美一区二区三区日韩| 久久―日本道色综合久久| 99在线精品观看| 欧美一区二视频在线免费观看| 亚洲精品一二三| 亚洲免费视频在线观看| 亚洲欧洲偷拍精品| 亚洲欧美激情四射在线日 | 亚洲国产一区二区a毛片| 夜夜嗨av一区二区三区网页| 韩国免费一区| 亚洲天堂av图片| 亚洲电影视频在线| 午夜伦欧美伦电影理论片| 亚洲日本成人在线观看| 欧美一区二区三区免费观看视频| 99精品视频免费| 久久美女性网| 欧美在线日韩在线| 欧美日韩在线播放| 欧美国产免费| 欧美高清自拍一区| 欧美专区中文字幕| 亚洲欧美另类在线| 欧美大胆人体视频| 欧美 日韩 国产精品免费观看| 国产精品久久久对白| 亚洲激情偷拍| 136国产福利精品导航网址应用 | 久久精品国产免费看久久精品| 欧美日韩国产综合一区二区| 欧美福利一区| 精品动漫一区二区| 久久成人免费| 久久蜜桃av一区精品变态类天堂| 国产精品视频网址| 亚洲小说欧美另类社区| 亚洲小说春色综合另类电影| 欧美精品一区二区三区在线播放 | 亚洲欧美国产精品桃花| 欧美香蕉视频| 一区二区三区日韩欧美| 一区二区三区日韩欧美| 欧美日韩国产成人在线观看| 亚洲国产欧美在线| 夜夜夜精品看看| 欧美日韩国产bt| 99成人在线| 亚洲一区三区视频在线观看| 欧美天天综合网| 中日韩高清电影网| 亚洲欧美伊人| 国产午夜久久久久| 久久久久久久波多野高潮日日| 久久人人爽人人爽爽久久| 一区视频在线看| 免费高清在线视频一区·| 欧美韩国日本一区| aa日韩免费精品视频一| 欧美性jizz18性欧美| 午夜精品久久久久久| 久久尤物视频| 亚洲激情在线观看视频免费| 欧美日本一区二区三区| 亚洲午夜小视频| 久久亚洲风情| 亚洲精品久久久久久久久| 欧美日韩一区二区三区在线视频| 一区二区三区日韩精品视频| 久久久国际精品| 亚洲全黄一级网站| 国产精品国产精品| 久久精品九九| 日韩视频精品在线| 久久精品国产综合精品| 亚洲国产精品嫩草影院| 欧美四级电影网站| 久久久精品欧美丰满| 亚洲精品一二三| 久久九九电影| 日韩视频专区| 国内精品美女av在线播放| 欧美国产日韩a欧美在线观看| 亚洲欧美国内爽妇网| 亚洲高清在线| 久久精品在线免费观看| 亚洲精品在线观| 国产综合视频| 欧美激情成人在线视频| 一本到12不卡视频在线dvd| 亚洲欧洲免费视频| 久久久最新网址| 一区二区三区视频观看| 欧美wwwwww| 亚洲神马久久| 一区二区三区鲁丝不卡| 欧美日韩国产在线看| 亚洲欧洲日本mm| 亚洲人成网在线播放| 免费观看日韩av| av不卡免费看| 亚洲免费婷婷| 一区在线观看视频| 午夜视频在线观看一区| 久热精品视频在线观看一区| 99re6热在线精品视频播放速度| 日韩午夜激情| 在线观看视频一区| 一本大道久久a久久精二百| 国产手机视频精品| 亚洲国产综合在线| 激情久久五月| 亚洲网友自拍| 一区二区成人精品| 久久久综合激的五月天| 久久成人精品视频| 欧美日韩一区二区三区在线视频 | 午夜亚洲性色视频| 欧美在线播放视频| 亚洲欧美日韩在线综合| 国产精品一区二区久久| 亚洲一区二区三区在线看| 香港久久久电影| 一区二区高清| 性欧美video另类hd性玩具| 99精品欧美| 久久在线播放| 午夜精品久久| 久久久精品日韩欧美| 国产精品试看| 一区二区三区不卡视频在线观看| 精品动漫一区二区| 欧美在线免费观看亚洲| 午夜久久资源| 国产亚洲激情在线| 久久久久成人精品免费播放动漫| 午夜亚洲性色视频| 国产一区二区三区的电影 | 久久综合电影| 伊人夜夜躁av伊人久久| 久久九九精品99国产精品| 欧美呦呦网站| 国内外成人免费激情在线视频| 久久国产精品第一页| 欧美成人黑人xx视频免费观看| 亚洲日本欧美天堂| 欧美日韩喷水| 久久国产精品久久久| 亚洲国产欧美日韩另类综合| 99精品视频一区| 国产精品夜色7777狼人| 免播放器亚洲一区| 亚洲欧美成人网| 亚洲人成在线观看| 久久疯狂做爰流白浆xx| 99精品视频免费观看视频| 国产精品欧美激情| 欧美日韩亚洲一区三区| 久久精品视频免费| 亚洲午夜精品视频| 9l视频自拍蝌蚪9l视频成人| 免费欧美日韩| 欧美一区国产在线| 亚洲一区免费视频| 亚洲在线成人精品| 最新国产の精品合集bt伙计| 亚洲福利视频在线| 亚洲成人在线视频网站| 国语自产精品视频在线看| 欧美日韩国产亚洲一区| 欧美日韩hd| 欧美三级在线| 欧美小视频在线观看| 国产精品久久久久久久一区探花 | 欧美肥婆bbw| 欧美精品尤物在线| 国产精品高清免费在线观看|