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

?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>
            一区二区三区 在线观看视频| 亚洲第一区中文99精品| 亚洲国产成人久久综合| 久久国产精品黑丝| 国产伊人精品| 欧美成人综合| 欧美日韩视频一区二区三区| 亚洲男人第一网站| 欧美一区二区三区视频免费播放| 久久精品一区蜜桃臀影院 | 在线综合+亚洲+欧美中文字幕| 亚洲免费电影在线| 亚洲日韩欧美视频一区| 国产精品久久久久高潮| 久久久亚洲午夜电影| 蜜臀久久99精品久久久久久9| 国产精品v日韩精品v欧美精品网站| 国产精品一区二区三区四区| 久久久久久久久久久一区 | 久久久久久久一区二区三区| 久久久久久久一区二区三区| 亚洲日本成人女熟在线观看| 午夜精品国产| 亚洲片国产一区一级在线观看| 午夜精品影院| 久久久久99| 午夜久久久久| 免费观看在线综合| 久久不射中文字幕| 欧美人妖在线观看| 米奇777超碰欧美日韩亚洲| 欧美视频免费在线| 欧美国产精品v| 国产精品久久久久aaaa九色| 欧美激情按摩| 国产一区999| 一区二区欧美国产| 亚洲精品在线视频观看| 久久婷婷国产麻豆91天堂| 欧美一级久久久久久久大片| 欧美日韩精品一区二区三区四区| 亚洲人成人77777线观看| 国产精品r级在线| 黄页网站一区| 免费av成人在线| 欧美午夜国产| 亚洲国内精品| 海角社区69精品视频| 国产精品99久久99久久久二8 | 欧美日韩mv| 久久久亚洲人| 欧美日韩久久不卡| 亚洲国产成人av在线| 亚洲电影免费观看高清完整版在线| 欧美专区在线观看一区| 欧美伦理在线观看| 欧美成人国产一区二区| 国语自产精品视频在线看抢先版结局 | 在线观看国产一区二区| 亚洲一区二区黄| 亚洲一区二区三区四区五区黄 | 欧美专区在线播放| 国产精品成人一区二区| 中日韩美女免费视频网址在线观看| 欧美日韩国产精品专区| 亚洲国产欧美另类丝袜| 日韩视频一区二区三区在线播放| 亚洲激情欧美| 99国产精品自拍| 欧美人在线观看| 在线天堂一区av电影| 亚洲欧美日韩精品久久| 国产欧美日韩亚洲| 亚洲一区二区三区中文字幕| 午夜久久福利| 激情文学综合丁香| 免费成人在线视频网站| 亚洲精品国产精品国产自| 亚洲午夜在线视频| 国产日韩综合| 美国十次成人| 一本色道久久88综合日韩精品| 国产自产女人91一区在线观看| 免费精品99久久国产综合精品| 欧美母乳在线| 亚洲——在线| 久久影院午夜论| 亚洲国产精品热久久| 欧美日韩国产999| 欧美一区二区三区免费视频| 欧美大片免费观看| 亚洲午夜精品网| 好吊色欧美一区二区三区四区 | 99综合精品| 久久国产精品亚洲77777| 欧美精品国产一区二区| 欧美~级网站不卡| 亚洲精品免费在线| 久久精品123| av成人天堂| 韩国三级在线一区| 久久综合色影院| 亚洲综合日韩| 亚洲国产精品专区久久| 欧美一区二区三区日韩视频| 亚洲日本va午夜在线电影| 国产乱人伦精品一区二区 | 亚洲美女网站| 久久夜色精品亚洲噜噜国产mv| 欧美午夜精品久久久久久久 | 性做久久久久久| 亚洲国产精品传媒在线观看| 国产精品日产欧美久久久久| 欧美gay视频| 久久久99精品免费观看不卡| 在线视频精品一| 欧美国产一区二区在线观看| 久久精品国产一区二区电影| 亚洲一区欧美二区| 日韩亚洲欧美高清| 亚洲人成啪啪网站| 在线不卡a资源高清| 国产偷国产偷亚洲高清97cao | 亚洲九九九在线观看| 久久综合狠狠综合久久综青草| 国产午夜久久久久| 欧美性一区二区| 欧美日韩一区二区欧美激情| 欧美高清在线一区| 免费欧美高清视频| 久久婷婷国产综合尤物精品 | 亚洲精品久久嫩草网站秘色| 国产精品一二三视频| 欧美视频免费在线| 欧美午夜片在线观看| 欧美日韩色综合| 欧美日韩一区二区在线播放| 欧美激情一区二区三区在线视频| 一区二区三区|亚洲午夜| 日韩视频免费看| 亚洲精品国偷自产在线99热| 亚洲国产天堂久久国产91| 亚洲盗摄视频| 亚洲国产中文字幕在线观看| 亚洲激情一区| 99热精品在线观看| 亚洲一级高清| 午夜在线观看免费一区| 久久国内精品视频| 免费亚洲网站| 欧美日韩视频在线第一区| 欧美三区在线观看| 国产美女高潮久久白浆| 国产亚洲日本欧美韩国| 永久免费精品影视网站| 一区二区三区自拍| 亚洲精品一区二区三区婷婷月| 国产精品乱码妇女bbbb| 国产精品夜夜嗨| 狠狠色综合网站久久久久久久| 欧美另类综合| 国产精品免费看| 狠狠色伊人亚洲综合网站色| 极品少妇一区二区三区| 亚洲美女福利视频网站| 欧美一级播放| 亚洲国产成人久久综合| 亚洲理论在线观看| 亚洲女性裸体视频| 麻豆精品一区二区av白丝在线| 一区二区三区 在线观看视频| 久久国产综合精品| 欧美福利视频在线| 亚洲日本成人网| 午夜精品久久久久99热蜜桃导演| 亚洲美女一区| 香蕉精品999视频一区二区| 美国十次成人| 国产女人水真多18毛片18精品视频| 免费国产自线拍一欧美视频| 国产精品久久久久9999| 91久久在线视频| 欧美在线综合| 亚洲精品在线电影| 久久久精品午夜少妇| 国产精品vvv| 在线视频观看日韩| 午夜欧美理论片| 亚洲欧洲日本一区二区三区| 亚洲一级黄色片| 欧美精品自拍偷拍动漫精品| 激情六月综合| 欧美一区二区三区的| 99re6这里只有精品| 蜜桃久久av| 精品成人乱色一区二区| 欧美一区二区三区播放老司机 | 一个色综合av| 欧美成人中文字幕| 久久国产黑丝|