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

?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>
            亚洲欧美日韩中文视频| 欧美高清视频一区二区| 久久久久一本一区二区青青蜜月| 一区二区三区产品免费精品久久75 | 蜜臀av性久久久久蜜臀aⅴ| 久久久久久久久岛国免费| 麻豆国产va免费精品高清在线| 欧美国产日韩一区二区三区| 欧美日韩免费看| 国产精品色午夜在线观看| 国产欧美精品日韩精品| 一区二区三区无毛| 99精品久久久| 久久免费观看视频| 日韩天堂av| 久久精品99久久香蕉国产色戒| 玖玖精品视频| 国产精品久久久久久福利一牛影视| 国产农村妇女毛片精品久久莱园子| 一区二区三区在线免费视频| 日韩视频中午一区| 久久精精品视频| 亚洲日韩中文字幕在线播放| 亚洲一区二区三区视频播放| 免费日韩成人| 国产一级精品aaaaa看| 一本久久综合亚洲鲁鲁五月天| 久久精品视频亚洲| 一区二区国产日产| 蘑菇福利视频一区播放| 国产一区日韩欧美| 亚洲一区二区成人| 亚洲经典视频在线观看| 亚洲一区二区免费在线| 99热在线精品观看| 男人的天堂成人在线| 国产精品国产馆在线真实露脸| 91久久视频| 亚洲国产成人不卡| 国产精品99一区二区| 国产日韩免费| 久久九九99| 欧美一区二区三区久久精品| 国产欧美一级| 美女诱惑黄网站一区| 久久久久中文| 亚洲国产裸拍裸体视频在线观看乱了中文| 性色av一区二区三区| 亚洲免费一在线| 狠狠色狠狠色综合| 亚洲电影自拍| 国产精品综合av一区二区国产馆| 午夜视频一区| 欧美黑人国产人伦爽爽爽| 亚洲精品视频中文字幕| 亚洲乱码国产乱码精品精天堂| 国产精品毛片va一区二区三区| 欧美一区国产一区| 久久综合九色综合久99| 亚洲自拍16p| 久久久www| 欧美一区二区三区久久精品茉莉花| 久久黄色级2电影| 亚洲天堂第二页| 欧美一区午夜精品| 亚洲精品久久久久中文字幕欢迎你| 亚洲精品在线观| 亚洲无人区一区| 欧美一区久久| 午夜亚洲激情| 国产精品成人免费视频| 久久躁日日躁aaaaxxxx| 国产精品女主播一区二区三区| 免费美女久久99| 国产欧美一区二区三区另类精品 | 久久久久久一区二区三区| 99精品国产一区二区青青牛奶 | 99精品欧美一区二区蜜桃免费| 激情另类综合| 久久美女性网| 亚洲国产你懂的| 亚洲免费观看在线视频| 欧美高清在线播放| 亚洲激情午夜| 亚洲影院一区| 国产欧美一区二区精品性| 欧美伊人久久大香线蕉综合69| 亚洲欧美综合另类中字| 国产美女精品| 久久视频在线看| 亚洲人成网在线播放| 在线亚洲高清视频| 国产精品一区二区久久久| 亚洲欧美综合国产精品一区| 久久爱www久久做| 亚洲精品一区中文| 欧美日韩国产不卡在线看| 男人插女人欧美| 午夜电影亚洲| 欧美在线观看你懂的| 理论片一区二区在线| 亚洲精品一区在线观看香蕉| 国产精品劲爆视频| 国产精品亚洲激情| 激情久久影院| 亚洲一区二区三区777| 久久精品成人一区二区三区蜜臀| 久久亚洲欧美| 一本久道久久综合中文字幕| 亚洲欧美日韩在线高清直播| 久久天堂精品| 国产麻豆综合| 一区二区三区欧美在线| 久久综合久久久久88| 男女精品网站| 日韩亚洲欧美成人| 亚洲午夜精品福利| 久久免费少妇高潮久久精品99| 久久久午夜精品| 欧美成人精品一区二区| 欧美人成在线视频| 国产农村妇女精品| 最新69国产成人精品视频免费| 一本色道久久88亚洲综合88| 亚洲淫片在线视频| 久久久久国产精品人| 亚洲免费久久| 久久超碰97中文字幕| 欧美日韩一区高清| 亚洲欧洲日产国产网站| 午夜亚洲视频| 亚洲精品乱码| 欧美a级一区二区| 国产一区在线播放| 亚洲桃花岛网站| 亚洲电影免费观看高清| 亚洲欧美在线磁力| 国产精品青草久久| 久久免费视频一区| 国产精品亚洲欧美| 久久伊人免费视频| 中国成人亚色综合网站| 国产精品vvv| 久久国产福利| 久久男人资源视频| 99视频有精品| 亚洲伊人色欲综合网| 欧美三级日本三级少妇99| 亚洲视频第一页| 亚洲视频欧洲视频| 国产精品爽黄69| 午夜亚洲福利| 蜜臀av一级做a爰片久久 | 蜜臀va亚洲va欧美va天堂| 国产亚洲毛片| 亚洲成人自拍视频| 免费成人av| 亚洲一区二区伦理| 久久成人精品| 亚洲天堂成人在线观看| 欧美中文在线观看| 日韩视频在线观看| 欧美一区激情| 欧美在线播放一区| 欧美日韩不卡在线| 欧美大片免费观看| 国产精品视频不卡| 欧美激情影院| 黄色成人免费观看| 一区二区不卡在线视频 午夜欧美不卡在 | 久久激情五月丁香伊人| 亚洲视屏在线播放| 欧美亚一区二区| 亚洲欧美国产精品va在线观看| 欧美1区2区| 欧美国产视频日韩| 国产在线视频欧美一区二区三区| 亚洲精品日韩精品| 91久久久久久| 欧美国产成人在线| 欧美激情一区二区三区不卡| 国产日韩欧美不卡| 欧美国产激情| 亚洲精品在线观看免费| 欧美久久久久久蜜桃| 91久久午夜| 亚洲免费伊人电影在线观看av| 欧美精品aa| 亚洲毛片av| 久久久精品国产99久久精品芒果| 国产精品久久久久久久久免费樱桃| 亚洲男人的天堂在线aⅴ视频| 亚洲一区在线免费| 国产一区视频网站| 男男成人高潮片免费网站| 亚洲国产一区在线| 亚洲激情图片小说视频| 狠狠噜噜久久| 亚洲精品一区中文| 牛牛影视久久网|