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

.7.3.3 數(shù)據(jù)傳輸
收發(fā)數(shù)據(jù)是網(wǎng)絡(luò)編程的主題。要在已建立連接的套接字上接收數(shù)據(jù),可用這兩個(gè)A P I函數(shù):
s e n d和W S A S e n d。第二個(gè)函數(shù)是Winsock 2中專有的。同樣地,在已建立了連接的套接字上接收數(shù)據(jù)也有兩個(gè)函數(shù): r e c v和W S A R e c v。后者也是Winsock 2函數(shù)。

必須牢牢記住這一點(diǎn):所有關(guān)系到收發(fā)數(shù)據(jù)的緩沖都屬于簡(jiǎn)單的c h a r類型。也就是說(shuō),這些函數(shù)沒(méi)有“U n i c o d e”版本。

另外,所有收發(fā)函數(shù)返回的錯(cuò)誤代碼都是S O C K E T _ E R R O R。一旦返回錯(cuò)誤,系統(tǒng)就會(huì)調(diào)用W S A G e t L a s t E r r o r獲得詳細(xì)的錯(cuò)誤信息。最常見(jiàn)的錯(cuò)誤是W S A E C O N N A B O RT E D和W S A E C O N N R E S E T。兩者均涉及到即將關(guān)閉連接這一問(wèn)題—要么通過(guò)超時(shí),要么通過(guò)通信方關(guān)閉連接。另一個(gè)常見(jiàn)錯(cuò)誤是W S A E W O U L D B L O C K,一般出現(xiàn)在套接字處于非暫停模
式或異步狀態(tài)時(shí)。這個(gè)錯(cuò)誤主要意味著指定函數(shù)暫不能完成。

1. send和W S A S e n d
要在已建立連接的套接字上發(fā)送數(shù)據(jù),第一個(gè)可用的A P I函數(shù)是s e n d,其原型為:

int send(
?????SOCKET s,
?????const char FAR * buf,
?????int len,
?????int flags
????);
S O C K E T參數(shù)是已建立連接的套接字,將在這個(gè)套接字上發(fā)送數(shù)據(jù)。第二個(gè)參數(shù)b u f,則是字符緩沖區(qū),區(qū)內(nèi)包含即將發(fā)送的數(shù)據(jù)。第三個(gè)參數(shù)l e n,指定即將發(fā)送的緩沖區(qū)內(nèi)的字符數(shù)。最后,f l a g s可為0、M S G _ D O N T R O U T E或M S G _ O O B。另外, f l a g s還可以是對(duì)那些標(biāo)志進(jìn)行按位“或運(yùn)算”的一個(gè)結(jié)果。M S G _ D O N T R O U T E標(biāo)志要求傳送層不要將它發(fā)出的包路
由出去。由基層的傳送決定是否實(shí)現(xiàn)這一請(qǐng)求(例如,若傳送協(xié)議不支持該選項(xiàng),這一請(qǐng)求就會(huì)被忽略)。M S G _ O O B標(biāo)志預(yù)示數(shù)據(jù)應(yīng)該被帶外發(fā)送。
對(duì)返回?cái)?shù)據(jù)而言,s e n d返回發(fā)送的字節(jié)數(shù);若發(fā)生錯(cuò)誤,就返回S O C K E T _ E R R O R。常見(jiàn)的錯(cuò)誤是W S A E C O N N A B O RT E D,這一錯(cuò)誤一般發(fā)生在虛擬回路由于超時(shí)或協(xié)議有錯(cuò)而中斷的時(shí)候。發(fā)生這種情況時(shí),應(yīng)該關(guān)閉這個(gè)套接字,因?yàn)樗荒茉儆昧恕_h(yuǎn)程主機(jī)上的應(yīng)用通過(guò)執(zhí)行強(qiáng)行關(guān)閉或意外中斷操作重新設(shè)置虛擬虛路時(shí),或遠(yuǎn)程主機(jī)重新啟動(dòng)時(shí),發(fā)生的則是W S A E C O N N R E S E T錯(cuò)誤。再次提醒大家注意,發(fā)生這一錯(cuò)誤時(shí),應(yīng)該關(guān)閉這個(gè)套接字。最
后一個(gè)常見(jiàn)錯(cuò)誤是W S A E T I M E O U T,它發(fā)生在連接由于網(wǎng)絡(luò)故障或遠(yuǎn)程連接系統(tǒng)異常死機(jī)而引起的連接中斷時(shí)。
send API函數(shù)的Winsock 2版本是W S A S e n d,它的定義如下:

int WSASend(
???????SOCKET s,
???????LPWSABUF lpBuffers,
???????DWORD???dwBufferCount,
???????LPWORD??lpNumberOfBytesSent,
???????DWORD???dwFlags,
???????LPWSAOVERLAPPED?lpOverlapped,
???????LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionROUTINE
??????);
這個(gè)套接字是一個(gè)連接會(huì)話的有效句柄。第二個(gè)參數(shù)是指向一個(gè)或多個(gè)W S A B U F結(jié)構(gòu)的指針。它既可是一個(gè)獨(dú)立的結(jié)構(gòu),又可以是一組結(jié)構(gòu)。第三個(gè)參數(shù)指明準(zhǔn)備投遞的W S A B U F結(jié)構(gòu)數(shù)。記住,每個(gè)W S A B U F結(jié)構(gòu)本身就是一個(gè)字符緩沖和緩沖長(zhǎng)度。為何打算同時(shí)發(fā)送多個(gè)緩沖呢?也許大家不太明白其中的原因。這就是我們稍后要講的“分散集中I / O模式”;但是,在一個(gè)已建立連接的套接字上利用多緩沖來(lái)發(fā)送數(shù)據(jù)時(shí),順序是從第一個(gè)到最后一個(gè)W S A B U F結(jié)構(gòu)。l p N u m b e r O f B y t e s S e n t是指向D W O R D(是W S A S e n d調(diào)用返回的)的指針,其中包含字節(jié)總發(fā)送數(shù)。d w F l a g s參數(shù)相當(dāng)于它在s e n d中的等同物。最后兩個(gè)參數(shù)—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。重疊I / O是Wi n s o c k支持的異步I / O模式之一,

W S A S e n d函數(shù)把l p N u m b e r O f B y t e s S e n t設(shè)為寫(xiě)入的字節(jié)數(shù)。成功的話,該函數(shù)就返回0,
否則就返回S O C K _ E R R O R,常見(jiàn)錯(cuò)誤和s e n d函數(shù)的情形一樣。

2. WSASendDisconnect
該函數(shù)非常特殊,一般不用。其原型是:

int WSASendDisconnect(?
????????????SOCKET s,
????????????LPWSABUF lpOUTboundDisconnectData
???????????);

該函數(shù)起初將套接字置為關(guān)閉狀態(tài),發(fā)送無(wú)連接的數(shù)據(jù)。當(dāng)然,它只能用于支持從容關(guān)機(jī)和無(wú)連接數(shù)據(jù)的傳輸協(xié)議。目前還沒(méi)有傳輸提供者支持無(wú)連接的數(shù)據(jù)。W S A S e n d D i s c o n n e c t函數(shù)的行為和利用S D _ S E N D參數(shù)調(diào)用s h u t d o w n 函數(shù)差不多,但它另外還要發(fā)送包含在b o u n d D i s c o n n e c t D a t a參數(shù)中的數(shù)據(jù)。后來(lái)的數(shù)據(jù)禁止在這個(gè)套接字上發(fā)送。如果調(diào)用失敗,
W S A S e n d D i s c o n n e c t i o n就會(huì)返回S O C K E T _ E R R O R。使用該函數(shù)可能會(huì)出現(xiàn)s e n d函數(shù)中出現(xiàn)的某些錯(cuò)誤。

帶外數(shù)據(jù)
對(duì)已建立連接的流套接字上的應(yīng)用來(lái)說(shuō),如果需要發(fā)送的數(shù)據(jù)比流上的普通數(shù)據(jù)重要得多,便可將這些重要數(shù)據(jù)標(biāo)記成“帶外數(shù)據(jù)”(Out-of-band, OOB)。位于連接另一端的應(yīng)用可通過(guò)一個(gè)獨(dú)立的邏輯信道(從概念上講,該邏輯信道與數(shù)據(jù)流無(wú)關(guān))來(lái)接收和處理O O B數(shù)據(jù)。
在T C P中,O O B數(shù)據(jù)由一個(gè)緊急1位標(biāo)記(叫作U R G)和T C P分段頭中的一個(gè)1 6位的指針組成。這里的標(biāo)記和指針把指定的下行流字節(jié)當(dāng)作緊急數(shù)據(jù)。實(shí)現(xiàn)緊急數(shù)據(jù)的兩種特殊方法目前只能在T C P.RFC 793中見(jiàn)到,該索引對(duì)T C P進(jìn)行了描述,并引入了“緊急數(shù)據(jù)”這一概念,表明T C P頭中的緊急指針是緊急數(shù)據(jù)字節(jié)之后那個(gè)字節(jié)的絕對(duì)偏移。但是在RFC 11 2 2中,卻將緊急偏移描述成指向緊急字節(jié)本身。
Wi n s o c k規(guī)格中,與協(xié)議無(wú)關(guān)的O O B數(shù)據(jù)和T C P的O O B數(shù)據(jù)實(shí)施(緊急數(shù)據(jù))均采用了O O B這一術(shù)語(yǔ)。要查看待發(fā)數(shù)據(jù)中是否包含緊急數(shù)據(jù),必須通過(guò)S I O C AT M A R K選項(xiàng)調(diào)用i o c t l s o c k e t函數(shù)。第9章將介紹S I O C AT M A R K的用法。
Wi n s o c k提供了獲得緊急數(shù)據(jù)的幾個(gè)方法。一是緊急數(shù)據(jù)一旦在線插入,它就會(huì)出現(xiàn)在普通數(shù)據(jù)流中;二是可以關(guān)閉在線插入,這樣,不連續(xù)調(diào)用接收函數(shù)就會(huì)只返回緊急數(shù)據(jù)。至于控制O O B數(shù)據(jù)行為的套接字選項(xiàng)S O _ O O B I N L I N E,我們也將在第9章詳細(xì)討論。

Te l n e t和R l o g i n使用緊急數(shù)據(jù)是有原因的。盡管如此,除非你計(jì)劃編寫(xiě)自己的Te l n e t和R l o g i n,否則就應(yīng)該遠(yuǎn)離緊急數(shù)據(jù)。因?yàn)樗蝗菀锥x,而且其他平臺(tái)上的實(shí)施情況可能和Wi n 3 2有所不同。在迫不得已的情況下使用緊急數(shù)據(jù),必須發(fā)信號(hào)通知通信方為緊急數(shù)據(jù)執(zhí)行
一個(gè)獨(dú)立的控制套接字,并為普通數(shù)據(jù)的傳輸保留主要的套接字連接。

Posted on 2006-09-07 22:31 艾凡赫 閱讀(647) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 網(wǎng)絡(luò)編程
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            91久久久久| 欧美四级在线| 亚洲美洲欧洲综合国产一区| 欧美高清视频一区二区| 欧美高清hd18日本| 亚洲免费电影在线| 亚洲影院在线观看| 久久精品国产清自在天天线| 蜜臀久久99精品久久久久久9| 免费久久99精品国产自| 欧美高清视频在线播放| 欧美日韩视频免费播放| 国产欧美一区二区色老头 | 国产精品社区| 国产一区二区日韩精品| 亚洲电影免费观看高清| 99视频精品在线| 欧美一区免费| 亚洲国产免费| 亚洲午夜久久久久久久久电影网| 午夜国产不卡在线观看视频| 美女视频黄a大片欧美| 欧美体内she精视频| 国内成人精品视频| 一区二区三区精品国产| 久久综合色婷婷| 一本色道婷婷久久欧美| 久久影院午夜论| 国产欧美一区二区三区国产幕精品| 亚洲国产视频直播| 欧美在线看片| 夜夜嗨av一区二区三区中文字幕| 久久精品国产亚洲精品| 欧美日韩中文字幕精品| 在线日韩av| 久久不射电影网| 一本色道久久综合亚洲精品婷婷| 久久久久一区二区三区| 国产精品夜夜夜一区二区三区尤| 亚洲茄子视频| 亚洲精品国产拍免费91在线| 亚洲综合色视频| 免费观看一区| 尹人成人综合网| 久久久999成人| 亚洲欧美日韩精品久久亚洲区 | 国产日韩欧美亚洲一区| 夜夜嗨av色一区二区不卡| 欧美成人免费网站| 久久久999| 好看的日韩视频| 久久精品最新地址| 亚洲欧美日韩国产综合| 国产精品视频大全| 亚洲综合电影| 国产精品99久久久久久久久| 欧美日韩精品综合| 一区二区三区成人精品| 亚洲免费电影在线观看| 欧美三区在线观看| 亚洲字幕一区二区| 亚洲欧美日韩在线| 海角社区69精品视频| 欧美亚洲综合另类| 午夜精品区一区二区三| 国产一区二区日韩精品欧美精品| 久久激情一区| 久久久久久久精| 亚洲欧洲偷拍精品| 亚洲欧洲在线一区| 欧美午夜精品理论片a级按摩| 亚洲一区成人| 性欧美videos另类喷潮| 伊人影院久久| 亚洲精品视频在线观看免费| 国产精品久久久一区二区三区| 亚洲免费视频在线观看| 性欧美8khd高清极品| 亚洲国产精品久久91精品| 亚洲人成在线观看| 国产精品永久免费| 欧美成人综合一区| 国产精品久久国产愉拍| 久久一综合视频| 欧美揉bbbbb揉bbbbb| 欧美主播一区二区三区美女 久久精品人| 亚洲欧美日韩专区| 亚洲精选一区二区| 欧美一级一区| 99精品热视频只有精品10| 亚洲欧美日韩一区在线观看| 亚洲福利视频网站| 亚洲尤物精选| 亚洲精品精选| 午夜精品福利一区二区蜜股av| 在线观看欧美一区| 亚洲一区二区免费在线| 亚洲国产精品久久久久婷婷老年| 在线亚洲免费视频| 亚洲国产成人porn| 老**午夜毛片一区二区三区| 国产精品99久久不卡二区| 亚洲欧美成人网| 亚洲精品一区在线观看| 亚洲欧美高清| 一区二区免费在线播放| 久久久久99| 亚洲欧美影院| 欧美美女福利视频| 欧美不卡三区| 国产一区二区剧情av在线| 日韩一级欧洲| 91久久中文字幕| 久久精品视频在线播放| 亚洲欧美亚洲| 欧美日韩久久| 亚洲二区在线| 亚洲国产99| 久久精品视频导航| 午夜在线观看免费一区| 欧美色视频一区| 99re8这里有精品热视频免费| 亚洲国产一区在线观看| 久久激情视频久久| 久久精品免费观看| 国产欧美三级| 午夜精品美女自拍福到在线| 午夜国产不卡在线观看视频| 欧美精品一区二区三区久久久竹菊| 久久综合伊人77777尤物| 国产一区二区三区在线免费观看| 一本色道婷婷久久欧美| 正在播放亚洲一区| 欧美日韩一卡二卡| 在线中文字幕不卡| 亚洲欧美日韩视频一区| 国产精品久久午夜夜伦鲁鲁| 亚洲天堂网在线观看| 亚洲中字在线| 国产乱肥老妇国产一区二| 亚洲欧美美女| 久久影院午夜论| 亚洲电影观看| 欧美好吊妞视频| 日韩亚洲欧美一区二区三区| 亚洲一区久久久| 国产女主播一区二区| 久久精品国产久精国产思思| 美女被久久久| 亚洲美女尤物影院| 欧美午夜三级| 午夜激情亚洲| 欧美不卡三区| 中文av一区特黄| 国产欧美欧美| 免费成人激情视频| 99精品欧美一区二区三区 | aa级大片欧美| 国产精品萝li| 久久久国产精彩视频美女艺术照福利 | 亚洲精选中文字幕| 亚洲午夜久久久久久久久电影网| 国产精品观看| 久久婷婷久久一区二区三区| 国产揄拍国内精品对白| 你懂的国产精品永久在线| 亚洲国产精品va在看黑人| 欧美精品1区2区3区| 亚洲综合国产激情另类一区| 久久―日本道色综合久久| 亚洲精品美女久久久久| 国产精品精品视频| 美腿丝袜亚洲色图| 亚洲性图久久| 亚洲国产精品精华液2区45| 亚洲伊人伊色伊影伊综合网| 狠狠色伊人亚洲综合网站色| 欧美日韩亚洲一区二| 久久国产精品亚洲77777| 亚洲精品中文字幕在线观看| 久久精品中文字幕一区| 在线一区欧美| 影音先锋一区| 国产精品一区二区三区成人| 欧美激情四色| 久久伊人免费视频| 午夜宅男久久久| 日韩午夜在线| 亚洲精品激情| 亚洲成人在线免费| 一区二区三区精品| 影音先锋中文字幕一区二区| 欧美视频在线一区二区三区| 久久综合色影院| 欧美一区免费视频| 一本久久知道综合久久| 牛人盗摄一区二区三区视频| 久久激情视频免费观看| 亚洲欧美日韩精品久久亚洲区 | 久久国产直播|