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

?3. recv和W S A R e c v
對在已連接套接字上接受接入數據來說, r e c v函數是最基本的方式。它的定義如下:

int recv(
?????SOCKET s,
?????char FAR * buf,
?????int len,
?????int flags
????);
第一個參數s,是準備接收數據的那個套接字。第二個參數b u f,是即將收到數據的字符緩沖,而l e n則是準備接收的字節數或b u f緩沖的長度。最后, f l a g s參數可以是下面的值: 0、M S G _ P E E K或M S G _ O O B。另外,還可對這些標志中的每一個進行按位和運算。當然, 0表示無特殊行為。M S G _ P E E K會使有用的數據復制到所提供的接收端緩沖內,但是沒有從系統緩
沖中將它刪除。另外,還返回了待發字節數。
消息取數不太好。它不僅導致性能下降(因為需要進行兩次系統調用,一次是取數,另一次是無M S G _ P E E K標志的真正刪除數據的調用),在某些情況下還可能不可靠。返回的數據可能沒有反射出真正有用的數量。與此同時,把數據留在系統緩沖,可容納接入數據的系統空間就會越來越少。其結果便是,系統減少各發送端的T C P窗口容量。由此,你的應用就不能獲得最大的流通。最好是把所有數據都復制到自己的緩沖中,并在那里計算數據。前面曾介紹過M S G _ O O B標志。有關詳情,參見前面“帶外數據”的內容。

在面向消息或面向數據報的套接字上使用r e c v時,這幾點應該注意。在待發數據大于所提供的緩沖這一事件中,緩沖內會盡量地填充數據。這時, r e c v調用就會產生W S A E M S G S I Z E錯誤。注意,消息長錯誤是在使用面向消息的協議時發生的。流協議把接入的數據緩存下來,
并盡量地返回應用所要求的數據,即使待發數據的數量比緩沖大。因此,對流式傳輸協議來說,就不會碰到W S A E M S G S I Z E這個錯誤。
W S A R e c v函數在r e c v的基礎上增加了一些新特性。比如說重疊I / O和部分數據報通知。
W S A R e c v的定義如下:

int WSARecv(
???????SOCKET?s,
???????LPWSABUF lpBuffers,
???????DWORD?? dwBufferCount,
???????LPWORD? lpNumberOfBytesRecved,
???????LPWSAOVERLAPPED?lpOverlapped,
???????LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionROUTINE
??????);
??????
參數s,是已建立連接的套接字。第二和第三個參數是接收數據的緩沖。l p B u ff e r s參數是一個W S A B U F結構組成的數組,而d w B u ff e r C o u n t則表明前一個數組中W S A B U F結構的數目。
如果接收操作立即完成, l p N u m b e r O f B y t e s R e c e i v e d參數就會指向執行這個函數調用所收到的字節數。l p F l a g s參數可以是下面任何一個值: M S G _ P E E K、M S G _ O O B、M S G _ PA RT I A L或者對這些值進行按位和運算之后的結果。M S G _ PA RT I A L標志使用和出現的地方不同,其含
義也不同。對面向消息的協議來說,這個標志是W S A R e c v調用返回后設置的(如果因為緩沖空間不夠導致整條消息未能在這次調用中返回的話)。這時,后面的W S A R e c v調用就會設置這個標志M A S G _ PA RT I A L,直到整條消息返回,才把這個標志清除。如果這個標志當作一個輸入參數投遞,接收操作應該在一收到數據就結束,即使它收到的只是整條消息中的一部分。
M S G _ PA RT I A L標志只隨面向消息的協議一起使用。每個協議的協議條目都包含一個標志,表明是否支持這一特性。有關詳情,參見第5章。l p O v e r l a p p e d和l p C o m p l e t i o n R O U T I N E參數用于重疊I / O操作

4. WSARecvDisconnect
這函數與W S A S e n d D i s c o n n e c t函數對應,其定義如下:
int WSARecvDisconnect(?
????????????SOCKET s,
????????????LPWSABUF lpOUTboundDisconnectData
???????????);
和W S A S e n d D i s c o n n e c t函數的參數一樣,該函數的參數也是已建立連接的套接字句柄和
一個有效的W S A B U F結構(帶有收到的數據)。收到的數據可以只是斷開數據。這個斷開數據是另一端執行W S A S e n d D i s c o n n e c t調用發出的,它不能用于接收普通數據。另外,一旦收到這個數據, W S A R e c v D i s c o n n e c t函數就會取消接收遠程通信方的數據,其作用和調用帶有S D _ R E C V的s h u t d o w n函數相同。
5. WSARecvEx
W S A R e c v E x函數是微軟專有的Winsock 1擴展,除了f l a g s參數是按值引用外,其余和r e c v函數是一樣的。它允許基層的提供者設置M S G _ PA RT I A L標志。該函數的原型如下:

int PASCAL FAR WSARecvEx(
?????????????SOCKET s,
?????????????char FAR * buf,
?????????????int len,
?????????????int * flags
????????????);
????????????


如果收到的數據不是一條完整的消息, f l a g s參數中就會返回M S G _ PA RT I A L標志。對面向消息的協議(即非流協議)來說,這個標志比較有用(即非流協議)。在M S G _ PA RT I A L標志被當作f l a g s參數的一部分投遞,而且收到的消息又不完整時,調用W S A R e c v E x,就會立即
返回收到的那個數據。如果提供的接收緩沖容納不下整條消息, W S A R e c v E x就會失敗,并出現W S A E M S G S I Z E 錯誤,剩下的數據也會被截掉。注意, M S G _ PA RT I A L 標志和W S A E M S G S I Z E錯誤之間的確區別是:有了這個錯誤,即使整條消息到達接收端,但由于提
供的數據緩沖太少,也不能對它進行接收。M S G _ P E E K 和M S G _ O O B標志還可以和W S A R e c v E x一起使用。

Posted on 2006-09-07 22:32 艾凡赫 閱讀(880) 評論(2)  編輯 收藏 引用 所屬分類: 基礎知識網絡編程

Feedback

# re: windows網絡編程九  回復  更多評論   

2006-09-07 22:04 by 愛飯盒
測試

# re: windows網絡編程九  回復  更多評論   

2011-06-08 11:59 by 外網
@愛飯盒
萬維網
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美在线综合| 欧美成人四级电影| 亚洲激情国产| 一区二区在线观看av| 好看不卡的中文字幕| 亚洲第一中文字幕| 亚洲国产高清视频| 日韩亚洲欧美成人一区| 99riav国产精品| 亚洲女同精品视频| 欧美在线播放| 男人的天堂亚洲在线| 亚洲国产日韩欧美| 亚洲国产视频一区二区| 夜夜嗨av一区二区三区| 性做久久久久久| 欧美大片专区| 国产精品视频1区| 在线观看日韩专区| 亚洲乱码精品一二三四区日韩在线 | 欧美成人精品在线播放| 欧美精品免费在线观看| 国产精品视频精品| 在线精品国产成人综合| 国产精品99久久久久久人 | 久久av资源网| 欧美激情在线有限公司| 亚洲综合成人在线| 亚洲区一区二| 亚洲女同在线| 欧美激情综合在线| 国产一区二区三区在线观看视频| 亚洲日本中文| 久久精品99久久香蕉国产色戒| 亚洲成人资源| 欧美亚洲尤物久久| 欧美日韩国产欧美日美国产精品| 国产一区二区三区黄视频| 在线一区欧美| 亚洲二区在线| 久久久国产91| 国产精品午夜春色av| 亚洲精品乱码久久久久久蜜桃麻豆 | 国产精品高潮视频| 在线日韩av| 久久国产精品久久久久久电车| 亚洲欧洲日韩综合二区| 久久久久久一区| 国产日韩欧美高清免费| 亚洲欧美日本日韩| 亚洲人在线视频| 蘑菇福利视频一区播放| 在线观看视频一区| 久久综合狠狠综合久久激情| 校园春色国产精品| 国产精品白丝av嫩草影院| 一本色道久久综合狠狠躁篇的优点 | 国产在线播放一区二区三区| 亚洲午夜视频| 亚洲欧洲一级| 欧美韩日一区二区| 亚洲精品老司机| 免费在线日韩av| 久久久蜜桃一区二区人| 精品动漫一区| 欧美国产精品劲爆| 欧美福利视频在线| 一区电影在线观看| 洋洋av久久久久久久一区| 欧美肉体xxxx裸体137大胆| 99国产精品99久久久久久粉嫩| 亚洲高清在线| 欧美激情日韩| 亚洲性感美女99在线| 亚洲免费高清| 国产精品久久久久7777婷婷| 亚洲欧美偷拍卡通变态| 欧美jizz19性欧美| 久久久人人人| 91久久精品国产91性色tv| 亚洲激情视频网| 欧美日本三区| 亚洲欧美偷拍卡通变态| 久久久久久久久久久一区| 在线看视频不卡| 91久久精品美女| 国产精品黄色在线观看| 久久成人av少妇免费| 老牛嫩草一区二区三区日本 | 性欧美超级视频| 极品少妇一区二区三区精品视频| 欧美大片在线看| 欧美人与性动交α欧美精品济南到| 亚洲视频在线观看网站| 亚洲综合首页| 91久久亚洲| 午夜视黄欧洲亚洲| 亚洲人成高清| 亚洲综合第一| 亚洲看片免费| 亚洲女同精品视频| 亚洲精品一区二区三区福利| 亚洲欧美国产视频| 在线免费观看日韩欧美| 日韩视频在线观看免费| 好吊妞**欧美| 9l国产精品久久久久麻豆| 国产一区二区福利| 最新中文字幕亚洲| 国内精品视频一区| 亚洲网站视频福利| 日韩午夜精品视频| 午夜日韩在线| 亚洲一区二区黄| 蜜桃久久精品乱码一区二区| 欧美诱惑福利视频| 欧美日韩综合| 亚洲黄色免费电影| 国语自产精品视频在线看| 一本久久a久久免费精品不卡| 曰本成人黄色| 久久精品亚洲热| 久久国产精品一区二区三区| 欧美日韩直播| 亚洲人成人一区二区在线观看 | 黑人一区二区| 亚洲一区二区三区777| 亚洲视频高清| 欧美女同在线视频| 亚洲国产精品欧美一二99| 亚洲第一二三四五区| 午夜精彩国产免费不卡不顿大片| 亚洲欧美日韩在线一区| 欧美四级在线| 一区二区三区偷拍| 亚洲社区在线观看| 欧美精品三级日韩久久| 亚洲国产成人久久| 亚洲综合首页| 欧美一区二区三区四区夜夜大片| 在线综合亚洲| 久久在线免费观看| 亚洲另类视频| 欧美综合二区| 国产喷白浆一区二区三区| 亚洲激情啪啪| 欧美亚洲日本国产| 欧美在线观看视频一区二区| 亚洲国产成人在线视频| 久久精品国产免费看久久精品| 欧美精品一级| 亚洲国产精品va在线观看黑人| 亚洲高清自拍| 美脚丝袜一区二区三区在线观看 | 亚洲永久网站| 国产精品久久久爽爽爽麻豆色哟哟 | 亚洲免费观看高清完整版在线观看熊 | 国产精品资源在线观看| 亚洲欧美日韩国产综合精品二区| 篠田优中文在线播放第一区| 国产精品视频精品| 久久久久久69| 91久久黄色| 午夜欧美视频| 精品动漫3d一区二区三区| 女同一区二区| 99综合精品| 久久免费精品视频| 亚洲精品在线电影| 国产精品视频一二| 久久嫩草精品久久久精品一| 亚洲日本中文字幕| 亚洲一区二区三区在线看 | 久久精品成人一区二区三区| 欧美激情导航| 亚洲综合国产激情另类一区| 国产日韩精品在线播放| 老司机久久99久久精品播放免费| 日韩天堂在线视频| 久久久精品国产免费观看同学| 依依成人综合视频| 国产精品久久二区二区| 亚洲一区二区三区视频播放| 免费试看一区| 亚洲在线一区| 欧美激情一区| 久久激情视频| 亚洲一区免费看| 亚洲人成啪啪网站| 国产日韩欧美中文在线播放| 欧美女同视频| 免费在线观看日韩欧美| 亚洲欧美另类国产| 99爱精品视频| 亚洲国产欧美日韩| 蜜臀av国产精品久久久久| 亚洲欧美日韩中文视频| 日韩网站在线观看| 亚洲福利av| 曰韩精品一区二区|