輕松學VisualC之網(wǎng)絡(luò)編程_第1頁
輕松學VisualC之網(wǎng)絡(luò)編程_第2頁
輕松學VisualC之網(wǎng)絡(luò)編程_第3頁
輕松學VisualC之網(wǎng)絡(luò)編程_第4頁
輕松學VisualC之網(wǎng)絡(luò)編程_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第15章網(wǎng)絡(luò)編程隨著Internet的普及,人們的生活已經(jīng)越來越離不開網(wǎng)絡(luò)。所以,編寫網(wǎng)絡(luò)程序成了每個開發(fā)人員必不可少的一項基本技能。VC++為編寫網(wǎng)絡(luò)程序提供了多種支持,使我們能更快更方便的的開發(fā)出滿足需要網(wǎng)絡(luò)應(yīng)用程序。通過本章學習,讀者也可以編寫出即時的聊天程序。15.1網(wǎng)絡(luò)編程基礎(chǔ)在使用VC++實現(xiàn)網(wǎng)絡(luò)編程之前,我們有必要學習一下計算機網(wǎng)絡(luò)的概念、一些常見的術(shù)語、還有計算機網(wǎng)絡(luò)的協(xié)議等網(wǎng)絡(luò)編程的基礎(chǔ)知識。15.1.1計算機網(wǎng)絡(luò)計算機網(wǎng)絡(luò),即相互連接的獨立自主的計算機集合,最簡單的網(wǎng)絡(luò)形式可以只由兩臺計算機組成,如下圖所示。15.1.1計算機網(wǎng)絡(luò)在Internet上,為了保證兩臺主機進行正常的通信,它們需要遵循約定的規(guī)則。我們把這種規(guī)則稱之為協(xié)議。如果A主機和B主機采用同樣的協(xié)議,它們之間就可以進行通信了。但是主機之間的通信往往不是單一的,一臺計算機上可能有多個程序要完成網(wǎng)絡(luò)的通信。例如,我們一邊掛著QQ,一邊還要看電影,一邊還在用迅雷下載東西。那么當信息發(fā)送到某個IP地址的主機時,應(yīng)該哪個程序來接收呢?15.1.1計算機網(wǎng)絡(luò)為了標識計算機上運行的每個網(wǎng)絡(luò)應(yīng)用程序,我們提出了端口的概念;每個網(wǎng)絡(luò)應(yīng)用程序都被分配了一個端口號。在發(fā)送數(shù)據(jù)時,除了指定接收數(shù)據(jù)主機的IP地址外,還要指定端口號。這樣,在指定IP地址的計算機上,將會由與指定端口號相對應(yīng)的網(wǎng)絡(luò)應(yīng)用程序來接收數(shù)據(jù)。就好像我們打電話,IP地址就像是一個公司的總機號碼,端口號就相當于分機號碼。在打電話時,撥通總機后,還需要轉(zhuǎn)到分機上,才能找到需要與你通話的人。15.1.2網(wǎng)絡(luò)協(xié)議網(wǎng)絡(luò)協(xié)議是網(wǎng)絡(luò)上所有設(shè)備之間通信規(guī)則、標準和約定的集合。不同的計算機之間必須使用相同的網(wǎng)絡(luò)協(xié)議才能進行通信。TCP/IP協(xié)議是目前在網(wǎng)絡(luò)中應(yīng)用得最廣泛的協(xié)議。TCP/IP是一個關(guān)于Internet的標準,并隨著的Internet廣泛應(yīng)用而被大眾所知,它也成為局域網(wǎng)所使用首選的協(xié)議。TCP/IP是一種分層協(xié)議,它共被分為個4層次。通過使用該協(xié)議,可以高效和可靠地實現(xiàn)各地的計算機相互連接。TCP/IP協(xié)議中的核心協(xié)議有TCP(傳輸控制協(xié)議)、UDP(用戶數(shù)據(jù)報協(xié)議)和IP(因特網(wǎng)協(xié)議)。15.1.2網(wǎng)絡(luò)協(xié)議1.TCP協(xié)議TCP(TransmissionControlProtocol/InternetProtocol,傳輸控制協(xié)議)提供一種面向連接的、可靠的字節(jié)流服務(wù)。面向連接意味著兩個使用TCP的應(yīng)用(通常是一個客戶和一個服務(wù)器)在彼此交換數(shù)據(jù)之前必須先建立一個TCP連接。該協(xié)議主要用于在主機間建立一個虛擬連接,以實現(xiàn)高可靠性的數(shù)據(jù)包交換。IP協(xié)議可以進行IP數(shù)據(jù)包的分割和組裝,但是通過IP協(xié)議并不能清楚地了解到數(shù)據(jù)包是否順利地發(fā)送給目標計算機。而使用TCP協(xié)議就不同了,在該協(xié)議傳輸模式中在將數(shù)據(jù)包成功發(fā)送給目標計算機后,TCP會要求發(fā)送一個確認;如果在某個時限內(nèi)沒有收到確認,那么TCP將重新發(fā)送數(shù)據(jù)包。另外,在傳輸?shù)倪^程中,如果接收到無序、丟失以及被破壞的數(shù)據(jù)包,TCP還可以負責恢復(fù)。15.1.2網(wǎng)絡(luò)協(xié)議2.UDP協(xié)議UDP協(xié)議(UserDatagramProtocol,用戶數(shù)據(jù)報協(xié)議)是OSI參考模型中一種無連接的傳輸層協(xié)議,提供面向事務(wù)的簡單不可靠信息傳送服務(wù)。UDP協(xié)議基本上是IP協(xié)議與上層協(xié)議的接口。UDP協(xié)議適用端口分別運行在同一臺設(shè)備上的多個應(yīng)用程序。15.1.2網(wǎng)絡(luò)協(xié)議3.IP協(xié)議IP協(xié)議(InternetProtocol,網(wǎng)絡(luò)之間互連的協(xié)議)是為計算機網(wǎng)絡(luò)相互連接進行通信而設(shè)計的協(xié)議。在因特網(wǎng)中,它是能使連接到網(wǎng)上的所有計算機網(wǎng)絡(luò)實現(xiàn)相互通信的一套規(guī)則,規(guī)定了計算機在因特網(wǎng)上進行通信時應(yīng)當遵守的規(guī)則。任何廠家生產(chǎn)的計算機系統(tǒng),只要遵守IP協(xié)議就可以與因特網(wǎng)互連互通。正是因為有了IP協(xié)議,因特網(wǎng)才得以迅速發(fā)展成為世界上最大的、開放的計算機通信網(wǎng)絡(luò)。IP地址可以稱為互聯(lián)網(wǎng)地址或Internet地址,是用來惟一標識互聯(lián)網(wǎng)上計算機的邏輯地址。每臺連網(wǎng)計算機都依靠IP地址來標識自己,這就很類似于我們的電話號碼樣的。通過電話號碼來找到相應(yīng)的具體的電話。全世界的電話號碼都是惟一的,IP地址也是一樣。15.1.3OSI參考模型在計算機網(wǎng)絡(luò)產(chǎn)生之初,每個計算機廠商都有一套自己的網(wǎng)絡(luò)體系結(jié)構(gòu),它們之間互不兼容。為此,國際標準化組織(ISO)建立了一個專門的機構(gòu)來研究一種標準的網(wǎng)絡(luò)體系結(jié)構(gòu),來實現(xiàn)對網(wǎng)絡(luò)的連接。這個標準即開放系統(tǒng)互聯(lián)體系結(jié)構(gòu)(OpenSystemsInterconnection,簡稱OSI)。它定義了連接不同類型計算機的標準框架。15.1.3OSI參考模型OSI參考模型分為7層,分別是物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層和應(yīng)用層,如下圖所示。15.1.4TCP/IP參考模型TCP/IP協(xié)議(TransferControlProtocol/InternetProtocol)叫做傳輸控制/網(wǎng)際協(xié)議,又叫網(wǎng)絡(luò)通訊協(xié)議,這個協(xié)議是Internet國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ)。TCP/IP參考模型分為四個層次:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層。在TCP/IP參考模型中,去掉了OSI參考模型中的會話層和表示層(這兩層的功能被合并到應(yīng)用層實現(xiàn))。同時將OSI參考模型中的數(shù)據(jù)鏈路層和物理層合并為鏈路層。15.1.4TCP/IP參考模型TCP/IP與OSI參考模型的對應(yīng)關(guān)系如下圖所示。15.1.5網(wǎng)絡(luò)編程相關(guān)概念1.端口按照OSI七層參考模型,傳輸層提供進程通信的能力。為了表示通信實體中進行通信的進程,TCP/IP協(xié)議提出了協(xié)議端口(ProtocolPort)的概念,簡稱端口。端口是一種抽象的軟件結(jié)構(gòu)(包括一些數(shù)據(jù)結(jié)構(gòu)和I/O緩沖區(qū))。應(yīng)用程序通過系統(tǒng)調(diào)用與某端口建立連接(Binding)后,傳輸層傳給該端口的數(shù)據(jù)都被相應(yīng)的進程所接收,相應(yīng)進程發(fā)給傳輸層的數(shù)據(jù)都要通過該端口輸出。端口使用一個16位的數(shù)字表示,所以它的范圍為0~65535,1024以下的端口號保留給預(yù)定義的服務(wù)。例如,http使用的80端口。所以我們在編寫網(wǎng)絡(luò)應(yīng)用程序時,要為程序制定1024以上的端口號。15.1.5網(wǎng)絡(luò)編程相關(guān)概念2.套接字(Socket)為了能夠方便的開發(fā)網(wǎng)絡(luò)應(yīng)用軟件,由美國伯克利大學在UNIX上推出了一種應(yīng)用程序訪問通信協(xié)議的操作系統(tǒng)調(diào)用套接字(Socket)。Socket的出現(xiàn),使程序員可以很方便地訪問TCP/IP,從而開發(fā)各種網(wǎng)絡(luò)應(yīng)用程序。隨著UNIX的應(yīng)用推廣,套接字在編寫網(wǎng)絡(luò)軟件中得到了極大的普及。后來套接字又被引進了Windows等操作系統(tǒng),稱為開發(fā)網(wǎng)絡(luò)應(yīng)用程序非常有效快捷的工具。。15包.1火.5網(wǎng)絡(luò)慨編程絡(luò)相關(guān)響概念3.網(wǎng)絡(luò)轎字節(jié)尼順序字節(jié)拖順序合是指碧占內(nèi)矮存多抬于一將個字洋節(jié)的端數(shù)據(jù)愿在內(nèi)內(nèi)存中吧的存吐放順蠻序。任通常鞭有兩帆種順室序,茫一種竄是低職字節(jié)裹數(shù)據(jù)漫存放戚在內(nèi)棵存低否地址而處,豬高字炒節(jié)數(shù)饞據(jù)存倒放在下內(nèi)存享高地秒址處嚼;另局一種議是高尊字節(jié)滲數(shù)據(jù)拐存放檢在低創(chuàng)地址喇處,脂低字壯節(jié)數(shù)桂據(jù)存濾放在堪高地蕉址處合。由于灶不同守的計柴算機冬存放齡多字前節(jié)值彼的順術(shù)序不騾同,蜻為保紛證數(shù)裝據(jù)的小正確慈性,逼在網(wǎng)布絡(luò)協(xié)但議中品須指馳定網(wǎng)轉(zhuǎn)絡(luò)字漆節(jié)順曠序。TC告P/稠IP協(xié)議儀使用16位整城數(shù)和32位整襖數(shù)的獵高位竿先存勞(即爪起始窩地址濟存放墻高位架字節(jié)彩)格桃式,碰它們歇均被危含在綢協(xié)議臣頭文杯件中捕。在滔網(wǎng)絡(luò)索中不論同主困機進等行通忌信時猶,要隆同一妻采用擊網(wǎng)絡(luò)矩字節(jié)情順序川。15名.1椅.5網(wǎng)絡(luò)嶼編程主相關(guān)阿概念4.半相秘關(guān)與災(zāi)全相瓣關(guān)在網(wǎng)威絡(luò)通漆信中耀,可回以使箏用一微個三輩元組竭(協(xié)抖議、餡地址賢、端費口號長)來貍表示蠢通信徐雙方械的一潮端。問這樣肆的一段個三完元組科叫做宮一個搬半相它關(guān)(Ha標lf啟-a崖ss斧oc旨ia番ti楊on)。胡一個摔完整冷的通孕信,帆需要歐由兩滅個進泉程完府成。歇可以首使用虜一個社五元寨組(產(chǎn)協(xié)議冬、本拳地地墻址、賊本地靈端口灰號、恩遠地誼地址債、遠世地端浸口號旁)來雜表示室通信溉的雙晌方。藏這樣吐一個辟五元笛組叫剃做一沖個全衣相關(guān)絞。兩個栽通信夠?qū)嶓w舟要進劑行通允信,劍必須感使用沙同一怨種高頁層協(xié)丙議。杯例如異,通羅信雙這方必隆須同挽時使孕用TC販P或UD崖P協(xié)議蔑。兩辜個協(xié)驗議相斬同的濕半相杜關(guān)才副能組岔合成慰一個茶合適濤的全細相關(guān)毅。15友.1越.5網(wǎng)絡(luò)濃編程庸相關(guān)咽概念5.客戶姐機/服務(wù)毯器模騎式在TC隨P/名IP網(wǎng)絡(luò)綠中,稿通信貪的兩幸個進圓程之蠻間通課常使染用客詞戶機/服務(wù)荷器模扎式(Cl來ie糧nt蜻/S林er熟ve截r),菠即客羽戶端細向服閑務(wù)器莫發(fā)送粒請求枕,服奇務(wù)器瞞收到卵請求露后提域供相卸應(yīng)的制服務(wù)概??蛻魲墮C/服務(wù)鍵器模稿式的說建立均主要府基于族兩點名。首莖先是癢建立眉網(wǎng)絡(luò)腫的起暗因是善網(wǎng)絡(luò)朽中軟陪硬件惱資源撓、運五算能濁力和襪信息多不均榴等,株需要坑共享攜。從停而造底成了謙擁有窗眾多撞資源凡的主壘機提變供服助務(wù),貓資源雀較少體的客診戶請肆求服猜務(wù)這窩一非燃對等犁關(guān)系豬。其釣次是矛網(wǎng)間痛進程區(qū)通信碧完全繭異步捎,互秘相通霉信的斬進程茅間既熟不存欣在父擇子關(guān)幟系,陷也不賣存在其共享怎緩沖棚區(qū)。宣因此裝需要咬一種哥機制底為希薄望通冶信的吐進程負間建喂立聯(lián)禽系,訪為二買者的填數(shù)據(jù)塌交換率提供腿同步稈。這瘦就是備基于質(zhì)客戶底機/服務(wù)緊器模于式的TC商P/睜IP。15銜.1亭.5網(wǎng)絡(luò)蠅編程坦相關(guān)絮概念客戶掉機/服務(wù)萍器模綢式在咸操作翁過程項中采乖用的但是主雖動請學求方悟式?;@首先悶服務(wù)奸器方揉要先輔啟動吸,并池等待蒼連接堵請求牙,其介過程林如下旬:(1)打笛開一吸通信觀通道貞并告勸知本盒地主蓄機,湊它愿卻意在胡某一進個公航認地費址上致接收勾客戶開請求因;(2)等喪待客墊戶請埋求;(3)接靜收到身服務(wù)念請求婆,處自理該識請求巖,并新發(fā)送惡應(yīng)答辣信號米;(4)返鵲回第姿二步摘,等已待其制他客撥戶請雅求;(5)關(guān)拍閉服炎務(wù)器暮。15制.1腦.5網(wǎng)絡(luò)拖編程屈相關(guān)礙概念客戶器方需廚要主剖動連逢接到麥服務(wù)集器,謝具體抄步驟法如下道:(1)打術(shù)開一印通信止通道柔,并詳連接畏服務(wù)運器指磚定的像端口構(gòu);(2)向腹服務(wù)寨器發(fā)猜送服訪務(wù)請析求報掘文;(3)等墾待并燙接收專應(yīng)答伐;(4)請扮求結(jié)禁束后裝關(guān)閉捷通信取通道體。15灘.1武.6VC賄++對網(wǎng)淋絡(luò)編朵程的傳支持微軟塵提供曠了在Wi秤nd殘ow梳s下進毫行網(wǎng)伏絡(luò)編堅程的云結(jié)構(gòu)Wi散nd細ow壓s援So眉ck穴et列A伐PI。使句用VC拌++除了涌能利開用Wi仿nd伐ow獵s育So盜ck換et送A擠PI進行法編程陳外,MF渠C還提槽供了測專門情的類以讓開起發(fā)者塌能更旱方便駕的進膊行網(wǎng)壇絡(luò)應(yīng)廉用程忍序的朵開發(fā)逗。下薄面我著們來釘介紹VC陡++對網(wǎng)當絡(luò)編農(nóng)程的煮支持芹有哪劣些。15請.1練.6VC雅++對網(wǎng)屬絡(luò)編帽程的搜支持1.扒Wi亂nd啟ow優(yōu)s木So率ck泄et夸A倍PIWi異nd潑ow效s環(huán)境里下進衫行網(wǎng)脊絡(luò)程鞠序設(shè)姓計的吹最基撓本方諒法是肉應(yīng)用Wi冬nd淡ow膚s斧So仆ck廳et位s實現(xiàn)盆進程留間的猶通信們。為蒜此微斜軟提消供了茶大量鑄基于Wi容nd慕ow章s耍So肅ck居et褲s的通相信AP檢I,如Wi杏nS車oc稼k住AP擋I、Wi協(xié)nI悲ne欲t侄AP淡I和IS勒AP券I,并污一直武致力叛于開震發(fā)更熱快、臣更容城易的陳通信AP熄I。在Vi招su冬al顏C萄++中,臂完全惕可以猾利用卸這些AP偏I函數(shù)店進行偵網(wǎng)絡(luò)孩程序評的開喘發(fā),載而不棄比附襖加任至何其閑他內(nèi)互容。15必.1碰.6VC解++對網(wǎng)廚絡(luò)編蒜程的刷支持2.預(yù)MF伏C哨Wi極nS慮oc罵k類雖然Wi插nd值ow促s寶So嚷ck材et偷A(chǔ)叼PI提供且了強層大的扔網(wǎng)絡(luò)梯編程鋤接口羽,但蠅是只村用它牙們來蘇進行登編程鍬是一路件非縮慧常煩脂瑣的這事情敲。為起了方麗便程陷序員脊的開腦發(fā),MF圖C對Wi泛nd駛ow泥s柴So房誠ck徒et稅A財PI進行浴了封幫裝。15己.1閑.6VC亭++對網(wǎng)睡絡(luò)編煤程的油支持3.敲Wi輸nI悟ne稈t支持一個In悟te跨rn限et客戶姑端程歌序的登目的巷是通寇過像HT骨TP、FT政P等In暮te柏rn刃et協(xié)議典來存篩取服昆務(wù)器匠的信膛息。Wi現(xiàn)nI域ne慨t是指創(chuàng)由Mi郵cr削os瞞of儉t提供盛的In鞋te泥rn磚et函數(shù)芳接口仆,這乎些函左數(shù)由Wi魯nI吵ne屬t.籍dl括l動態(tài)圾庫提才供,萌程序盼員利負用這探些函帳數(shù)能雞方便哪地使脂用HT才TP、FT曬P和go籮ph囑er訪問In克te店rn固et,甚出至還埋能進待行Fi陣ng債er查詢召和Wh桶oi倉s查詢寄。為了號更方遮便的防開發(fā)In才te唐rn羅et應(yīng)用借程序亭,MF擴C將Wi平nI辱ne縮慧t函數(shù)搖封裝宵在一拔個類域庫中龍。在摟編寫Wi士nI休ne以t客戶英端應(yīng)用用程從序時民,既附可以咽直接瘡使用Wi淋n3孔2函數(shù)陷,也摟可以謀使用Wi慶nI淡ne款t類庫除。MF揭C提供事了13個Wi腰nI舉ne瓶t類,糾它們母實現(xiàn)媽了一旦系列In洗te廁rn擁et訪問過功能嶼。15雷.1溜.6VC曲++對網(wǎng)冒絡(luò)編飼程的傘支持4.腦MA俘PI支持MA落PI是Me胡ss向ag據(jù)in樂g環(huán)Ap并pl恐ic蝕at丑io鈴n燈Pr補og票rm懸mi普ng粗I咱nt塞er斃fa妨ce的縮滔寫。MA好PI提供很了一烈組函奮數(shù),咐能夠件支持兼郵件捕或郵余件撰箭寫應(yīng)銀用程賢序的散開發(fā)催。MF咐C并沒辯有封叛裝整透個MA孤PI函數(shù)儀集,暴但是漂可以狠在MF餅C應(yīng)用根程序再中直煎接使磚用MA啟PI函數(shù)鹿。在MF姑C的CD鋤oc球um踩en湯t類中劣提供靈了On公Fi屯le捉Se智nd壞Ma另il和On向Up頁da蔽te隨Fi梯le旗Se竄nd耳Ma悅il函數(shù)谷支持渠郵件獎的發(fā)慕送。15痰.1榮.6VC性++對網(wǎng)慌絡(luò)編烤程的門支持5.均IS昏AP沸I支持IS子AP叨I是In露te雄rn惕et角S領(lǐng)er霜ve皂r掀AP掌I的簡逝寫,痰它提葛供了羊一種頓簡單使有效搜的方稅法來諸擴展山與IS鵲AP鳥I兼容莊的We擇b服務(wù)勸器。IS羽AP肥I服務(wù)筐器擴睛展是組可以賠被HT摟TP服務(wù)縣器加餐載和肌調(diào)用份的DL支L。In榮te魚rn秧et服務(wù)虛器擴肚展也辦稱為In棚te擺rn臨et服務(wù)流器應(yīng)災(zāi)用程校序(IS葉A),疼用于彎增強芽符合In練te馬rn鎖et服務(wù)將器AP朵I(IS位AP材I)的列服務(wù)勾器功愛能。IS激A通過鎮(zhèn)瀏覽壞器應(yīng)嚼用程怨序調(diào)驅(qū)用,顆并且臥將相辛似的盒功能河提供阿給通因用網(wǎng)免關(guān)接再口應(yīng)德用程妙序。15息.2淋Wi瞇nS頭oc礎(chǔ)k蹤蝶AP烈I編程Wi天nS施oc乎k后AP敗I是微腐軟提門供的倚網(wǎng)絡(luò)瘋編程深接口薯。VC眼++對網(wǎng)臟絡(luò)編青程的展支持霧有so養(yǎng)ck敘et支持話,Wi很nI估ne源t支持晉,MA木PI和IS觸AP麗I支持衰等。厲其中銹,Wi堤nS氧oc耀k張AP語I是TC摟P/馬IP網(wǎng)絡(luò)謝環(huán)境獲里,肢也是In脾te賭rn投et上進死行開短發(fā)最旅為通花用的AP羞I。15蛙.2證.1綿Wi顧nS喚oc狐k捉AP搖I常用泰函數(shù)1.槐WS每AS聰ta亞rt裕up函數(shù)WS患AS舉ta朽rt醫(yī)up函數(shù)房誠主要至實現(xiàn)寸加載騰套接商字庫硬和套岡接字灘庫版否本協(xié)芳商的章功能濕,也勻就是飄確定逮將使慮用so再ck解et版本鞭。該銳函數(shù)盡的原事型聲廳明如匹下所很示。15坦.2筋.1避Wi者nS個oc澆k仇AP絕I常用摘函數(shù)WS粒AD敵AT右A結(jié)構(gòu)津的定叔義如鞭下所賭示:15飾.2者.1潤Wi歸nS畫oc儀k抵AP秋I常用簡函數(shù)2.注so課ck尋et函數(shù)在完趴成對遞套接鴿字庫沖的加禍載之危后,久就可劍以調(diào)山用so此ck惑et函數(shù)配來創(chuàng)熊建套級接字沾了。暴該函載數(shù)的痕原型否聲明悟如下探所示捧。15舌.2汪.1競Wi慣nS會oc扔k嚴AP菊I常用梨函數(shù)3.供bi妄nd函數(shù)在創(chuàng)朝建了寸套接害字后臣,我嬸們通呢過bi斜nd紐奉()函數(shù)級將該抽套接斗字綁它定到像本地頂?shù)哪匙€地夢址及第端口滿上。燒該函燥數(shù)的挨原型替聲明永如下堤所示飾。15莫.2燭.1符Wi蔬nS役oc腸k桂AP吃I常用趕函數(shù)so距ck礎(chǔ)ad盼dr結(jié)構(gòu)云的定艦義如性下所汽示:15誼.2角.1戀Wi滴nS螞oc底k誕AP熔I常用暴函數(shù)由于善實際磚要求闊的只派是內(nèi)伶存區(qū)性,所低以對察于不濟同的返協(xié)議效家族護,用百不同栗的結(jié)闊構(gòu)來橡替代so公ck級ad辣dr。除摸了sa粱_f堡am圣il由y外,so評ck喬ad慣dr是按堪網(wǎng)絡(luò)遞字節(jié)必順序伙表示親的。僵在基籍于TC愉P/信IP的so睡ck債et中,碗可以棟用so郵ck偶ad匯dr餡_i走n結(jié)構(gòu)心來表賺示,局以方星便填泄寫地掠址信負息。so招ck奇ad誕dr塵_i炊n的結(jié)姿構(gòu)定匹義如泳下所訓(xùn)示。15巾.2盟.1考Wi比nS遙oc即k斯AP弓I常用肚函數(shù)4.摟in盾et埋_a翠dd蔬r函數(shù)魔和in壯et竟_n巴to僵a函數(shù)in靈et符_a蹤蝶dd強r(肥)函數(shù)漠實現(xiàn)抬將字濕符型IP地址駁轉(zhuǎn)換濾為In坦te絹rn傍et地址雪值。姜其函稼數(shù)原要型聲植明如登下所濱示。15繳.2霸.1峽Wi放nS冤oc成k檢AP李I(lǐng)常用亡函數(shù)in盲et順_n貍to孩a函數(shù)協(xié)完成喘相反葛的轉(zhuǎn)焰換,禮它接持受一謹個in捐_a它dd分r結(jié)構(gòu)暑體類多型的導(dǎo)參數(shù)般并返棋回一暢個以紹點分葛十進悄制格蘋式表蠅示的IP地址芹字符鴿串。妹該函喇數(shù)的曠原型貿(mào)聲明堂如下竹所示選:15料.2臟.1炕Wi勺nS戚oc性k唱AP超I常用畫函數(shù)5.旗li認st敬en函數(shù)當服澆務(wù)器窗端的So伶ck麗et對象饑綁定坑之后本,必梳須建太立一擊個監(jiān)膏聽的舅隊列耳來接延收客頌戶端似的連伐接請毅求。li梨st野en墾()函數(shù)球的作毀用是蘭將指鄰定的兔套接線字設(shè)格置為亡監(jiān)聽稀模式訊。其尼函數(shù)祝原型死聲明桌如下惡所示擠。15籍.2醋.1體Wi篩nS訂oc痰k哀AP罷I常用山函數(shù)6.具ac熟ce跌pt函數(shù)當客雕戶端朗提出繩連接誤請求貝時,罪服務(wù)循器端翼通過汪調(diào)用ac健ce接pt餡()函數(shù)頓接受餓客戶卸端的拍連接提請求顯。該蟲函數(shù)銹的原虜型聲傳明如償下所具示。15算.2戒.1系Wi荷nS靈oc斬k弱AP建I常用烈函數(shù)7.師se銜nd函數(shù)搜和se波nd連to函數(shù)我們布利用se市nd函數(shù)方來發(fā)循送數(shù)象據(jù),se屆nd函數(shù)裳通過岸一個戚已建斯立連蘭接的碗套接卸字來精完成非數(shù)據(jù)縱的發(fā)落送。摩其函驅(qū)數(shù)原鍋型聲啟明如細下所棄示。15蓬.2塵.1罵Wi械nS故oc擇k毅AP籍I常用影函數(shù)如果大我們銅想向壺一個捉特定杰的目平的方間式發(fā)座送數(shù)禁據(jù),欲可使吉用se晝nd腳to西()函數(shù)源。其叮函數(shù)碼原型處聲明史如下酒所示渡。15陵.2扭.1毒W(wǎng)i能nS湊oc纏k館AP否I常用去函數(shù)8.而re慶cv函數(shù)寶和re丟cv快fr撓om函數(shù)re絕cv函數(shù)撒實現(xiàn)貼從建抖立連慈接或飲綁定落的so段ck壁et中接獎收數(shù)鐮據(jù),棵該函玩數(shù)的商原型菊聲明賠如下叢所示重。15盟.2轎.1鍛Wi逃nS叛oc治k愚AP策I常用脫函數(shù)如果央我們窗要接纏收一袋個數(shù)稍據(jù)報湯信息這并保域存源倡地址府,可換通過re芳cv螺fr泊om革()函數(shù)豎實現(xiàn)映。該卻函數(shù)鏈的原朱型聲杠明如時下所監(jiān)示。15文.2菠.1批Wi趣nS蘿oc麗k姥AP爬I常用遣函數(shù)10民.c匪on視ne落ct函數(shù)co寇nn趨et權(quán)()函數(shù)桿用于萄建立使一個臥連接記到一抄個指翅定的so繁ck堂et。其園函數(shù)趴原型饅聲明泄如下頌所示廁。15兩.2譜.1削Wi怠nS織oc玩k腳AP顧I常用塞函數(shù)11煮.h值to攤nl函數(shù)店和ht創(chuàng)on相s函數(shù)ht良on覆l函數(shù)卷實現(xiàn)抄將32為主泥機字云節(jié)順逆序的壩長整時型數(shù)刮據(jù)轉(zhuǎn)忠換為TC驗P/早IP網(wǎng)絡(luò)利字節(jié)并順序粉數(shù)據(jù)黨。其叢函數(shù)顯的原影型聲剖明如蓄下所抽示。15親.2依.1你Wi竿nS抽oc繪k龜AP組I常用作函數(shù)ht搬on仍s函數(shù)魚實現(xiàn)習將16位主你機字絮節(jié)順殺序的版整型核數(shù)據(jù)帳轉(zhuǎn)換熔為TC尤P/揪IP網(wǎng)絡(luò)傅字節(jié)喜順序性數(shù)據(jù)丈。其喉函數(shù)益的原紋型聲串明如逆下所揉示。15木.2息.2基于TC忠P套接何字編戰(zhàn)程步歐驟TC宋P(傳內(nèi)輸控竊制協(xié)誘議)妻是一鍵種面末向連欺接的猶、可玩靠的杜傳輸孔層協(xié)菌議??盎赥C朋P套接鈴字編街程服啟務(wù)器復(fù)端程軟序編孔寫步李驟如模下:(1)創(chuàng)暖建套譯接字嗓(so絞ck輕et)。(2)將磚一個浸套接毒字綁瞇定到務(wù)一個碌本地創(chuàng)地址胃和端醫(yī)口上宿(bi珠nd)。(3)將薦套接桂字設(shè)蹄為監(jiān)顫聽模蕉式,醋用來限接收忙客戶展請求吸(li昏st葉en)。(4)等姑待客饒戶請魔求,撥當接傻收到周請求標后接歉受連瞇接請羨求,給并返愚回一宣個新品的對朱應(yīng)于私此次盾連接匪的套曬接字?。╝c萄ce昆pt)。(5)用吃返回幟的套此接字喂和客六戶端虧進行露通信囑(se越nd若/r梅ec需v)。(6)返尋回,眨等待懇另一諷個客踐戶請川求。(7)關(guān)剛閉套壺接字躁。15思.2賄.2基于TC惠P套接瞇字編聰程步勞驟基于TC錫P的套亡接字疑編程紹,客膊戶端姐程序織編寫布步驟擱如下浸:(1)創(chuàng)嘆建套奪接字伴(so浮ck缸et)。(2)向撞服務(wù)珍器發(fā)字送連踢接請飯求(co泡nn暢ec鵲t)。(3)和捆服務(wù)閥器端懶進行字通信猜(se綠nd燃/r推ec迫v)。(4)關(guān)快閉套挪接字私。15稈.2鼻.3基于TC鹽P套接瞇字編兔程實杏例下面眨我們涂編寫介一個悲基于蛾對話黃框的TC階P套接竭字程沖序,系使讀蝴者對千上面霉講解巖的知譯識有察更深弄刻的千理解隸。首歌先編輪寫服初務(wù)端踢程序灶,然倆后再損編寫遷客戶撞端程公序。1.編寫去服務(wù)傻端程驗序2.編寫憲客戶御端程缺序15紛.2離.4基于UD行P套接跡字編紙程步咳驟UD兔P(用盞戶數(shù)鼻據(jù)報罷協(xié)議茫)是遺一種與無連搏接的屋客戶/服務(wù)蹈器通鞭信協(xié)籮議。省它不軟能保倍證數(shù)槍據(jù)報攀會被添對方姻完全醋接收糕,也類不保巡壽證他衡們抵絲式達的站順序滿與發(fā)贊出時懼是一洞樣的嫂,但疑它的觸速度噸要比TC軌P/允IP協(xié)議歪快的說多。旦所以省,對宇于某對些不便需要亞保證和數(shù)據(jù)怒完整杠準確癢的場皂合或歷數(shù)據(jù)瓣量很跨大的鎮(zhèn)場合嶄,通兼常蠶什蛹UD蟻P通信像。15紗.2環(huán).4基于UD乘P套接小字編博程步既驟對于UD插P套接庫字編爬程來版說,銅它的強服務(wù)政器端你和客陸戶端竊概念忠不太腥強化誘,所績以我舌們稱潑之為凈接收按端和涌發(fā)送龜端。攻接收慚端程催序的捐編寫鞭步驟斃如下捎:(1)創(chuàng)務(wù)建套述接字科(so仙ck嗎et)。(2)將闊套接感字綁納定到雕一個投本地犯地址酬和端拘口上描(bi答nd)。(3)等刺待接默收數(shù)皆據(jù)(re罰vc種fr坐om)。(4)關(guān)仔閉套聯(lián)接字排。15留.2助.5基于UD蓋P套接愈字編本程實鋼例下面禮,我它們編具寫一決個基夏于UD祝P協(xié)議自的聊絞天軟送件。惜就像QQ客戶晃端一窮樣,叛實現(xiàn)甲兩臺叫電腦耕互相驗發(fā)送槍和接鳥收消扣息的榆功能培。15看.3利用MF失C塑Wi移nS號oc基k類編肯程在實護際的扔應(yīng)用而中,丸我們蒜已經(jīng)武幾乎萍不在博使用Wi尿nd渣ow灑s凍So冒ck獄et舌A饞PI來編儉寫網(wǎng)撇絡(luò)程擴序了都。因痛為MF哨C為編訓(xùn)程人咬員封落裝了CA戀sy蛙nc顆So沿ck輛et和CS復(fù)oc賣ke闖t兩個尚類,決使我宮們能件夠更托方便紛的實盡現(xiàn)網(wǎng)日絡(luò)通著信。滔本節(jié)芝將針耐對這當兩個景重要兆的類奔做簡倦要的陰介紹丑。15配.3乖.1路MF仁C小Wi哄nS帶oc炎k類編掌程概川述直接爺利用Wi扮nd狡ow錯s帶So百ck積et圈s水AP乓I編程兵,需仔要了性解網(wǎng)壞絡(luò)編財程的誘框架榮,使蠟用起電來比百較復(fù)被雜。濱為了灶簡化朽套接京字網(wǎng)目絡(luò)編蘇程,MF缸C提供狡了兩杏個套離接字滲類,膏對Wi右nd負ow百s畝So壞ck秒et誰s俊AP貝I進行尸了不族同層賴次的乏封裝妹。一厚個是CA窩sy猜nc峰So周ck寫et類、英另一肌個是CS曬oc你ke冷t類。15奸.3詳.1鄙MF破C艇Wi鞭nS嗚oc匪k類編疲程概帝述CA吃sy支nc刮So甚ck乏et類對Wi須nd絨ow煤s以So或ck賀et咐s斥AP哲I進行笛了很喉底層興次的居封裝馳,它榜的成埋員函換數(shù)和Wi聾nd割ow您s祥So感ck到et宅s書AP累I的函奸數(shù)調(diào)艙用直餐接對琴應(yīng)。蜻一個CA喪sy捕nc乳So餃ck失et對象夸代表沈一個狗套接炎字。施如果僅對網(wǎng)騰絡(luò)通橋信的返細節(jié)膊比較狡熟悉晚,仍揀希望遼充分嚇利用Wi牲nd航ow絨s凳So嶄ck拼et擦s絲式AP株I編程孔的靈還活性豬,可桐以選斑擇CA課sy和nc倍So追ck眨et進行尤編程雖。但但是必相須自信己處啦理阻澡塞問禁題、墳字節(jié)船順序裝問題殿和字度符串某轉(zhuǎn)換叼問題感。15由.3豆.1少MF掠C盆Wi卷nS葬oc畜k類編敲程概卷述CS任oc惑ke俗t類是CA嗚sy燙nc秤So肌ck煎et類派嘉生出荷來的荒,是準對Wi褲nd插ow孫s統(tǒng)So每ck炭et緣瑞s險AP犁I的高肅級封證裝。CS士oc仗ke少t類繼附承了CA問sy莖nc漂So于ck頂et類的孔許多個成員概函數(shù)栗,這婆些函售數(shù)封槐裝了Wi升nd峰ow換s套接針字應(yīng)恢用程虛序編膝程接傍口。值在兩骨個套燙接字錦類中絡(luò),這坦些函獅數(shù)的授用法病是一恐致的盯。而CS斷oc盤ke風t類的軍高級到,主蓋要表兩現(xiàn)在3個方飽面:密一、CS欺oc化ke挪t類可表結(jié)合CA朋rc撓hi悄ve類來鉛使用練套接欲字;酸二、CS山oc圈ke快t類管加理了奪通信悠的許向多方宅面,扁如字端節(jié)順標序問毯題和丘字符幣串轉(zhuǎn)棍換問災(zāi)題。廟而這問些在爪使用板原始AP熟I或CA叫sy粒nc鍵So嘩ck座et類時偉,都基必須速由用足戶自啄己來頁解決符。所散以,CS淘oc鞏ke肌t類要春比CA昂sy乖nc僻So徐ck臣et類更洲容易瀉使用盞。三衫、CS升oc牽ke案t類為Wi蹈nd瘋ow擾s消息限的后抽臺處格理提煙供了叢阻塞轟的工猾作模襖式,譯而這桃也是CA脾rc慎hi蠻ve同步曾操作眨所必漠須的胞。15飾.3北.1殺MF別C辨Wi嫁nS遮oc基k類編汽程概筒述至于列這兩太個類禍的主蓬要區(qū)盼別也軍就是踐前者誰是異疼步通況信,膠后者撲是同辨步通聞信;趟前者旨是非權(quán)阻塞勞模式區(qū),后冠者是炎阻塞讓模式伶。下種面我陣們只科對CS伴oc朗ke衡t類中涼的常葛用到希的一透些方棄法及冰其使撞用做農(nóng)簡要樹介紹假。15慰.3年.2CS詞oc眉ke星t類常追用到悲的方申法1.滅Af差xS銹oc巾ke雨tI壘ni蔽t(底)函數(shù)該函吵數(shù)作麻用為金初始霞化Wi映nS索oc底k,在苗使用CS趣oc堅ke跟t前一脅定要室先調(diào)淋用該耀函數(shù)沙,否暖則使軟用CS征oc晴ke耐t會出膚錯。沃就算推主線涉程調(diào)胳用了別該函胳數(shù),杯在子黃線程態(tài)下使省用CS幣oc財ke券t也要眠先調(diào)勒用該欣函數(shù)者。該蓄函數(shù)奔的原嫌型聲完明為囑如下滴。15憂.3餓.2CS訴oc資ke罩t類常佳用到硬的方腰法2.衰Cr村ea取te槍()方法通過惜調(diào)用Cr逗ea遮te竄()方法律創(chuàng)建穴底層尤套接自字句胸柄,眾并且鎮(zhèn)決定浩套接抱字對韻象的先具體辜特性格。其贏函數(shù)盤的原瞇型聲腦明如死下所流示。15已.3珍.2CS球oc衛(wèi)ke咳t類常洗用到呆的方辨法3.巡壽Li律st畜en厚()方法通過啊調(diào)用Li闊st租en例()函數(shù)舟,是蒸監(jiān)聽弱套接副字對蝕象開姑始監(jiān)慕聽來趨自客察戶機礦端口畫的連世接請揚求。養(yǎng)此函做數(shù)的它原型蜻聲明酷如下辟所示燈。15語.3串.2CS樹oc感ke夜t類常像用到雞的方女法4.孕Co欺nn稠ec硬t(瞇)方法使用區(qū)流式己套接柿字需銅要事汪先建灰

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論