版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、我們知道C#和C++的差異之一,就是他本身沒(méi)有類庫(kù),所使用的類庫(kù)是.框架中的類庫(kù).FrameWkSDK。在.FrameWkSDK中為網(wǎng)絡(luò)編程提供了二個(gè)名稱空間:““和“.Sockets“。C#就是通過(guò)這二個(gè)名稱空間中封裝的類和方法實(shí)現(xiàn)網(wǎng)絡(luò)通訊的。首先我們解釋一下在網(wǎng)絡(luò)編程時(shí)候,經(jīng)常遇到的幾個(gè)概念:同步(synchronous)、異步(asynchronous)、阻塞(Block)和非阻塞(Unblock):所謂同步方式,就是發(fā)送方發(fā)送數(shù)
2、據(jù)包以后,不等接受方響應(yīng),就接著發(fā)送下一個(gè)數(shù)據(jù)包。異步方式就是當(dāng)發(fā)送方發(fā)送一個(gè)數(shù)據(jù)包以后,一直等到接受方響應(yīng)后,才接著發(fā)送下一個(gè)數(shù)據(jù)包。而阻塞套接字是指執(zhí)行此套接字的網(wǎng)絡(luò)調(diào)用時(shí),直到調(diào)用成功才返回,否則此套節(jié)字就一直阻塞在網(wǎng)絡(luò)調(diào)用上,比如調(diào)用StreamReader類的Readlin()方法讀取網(wǎng)絡(luò)緩沖區(qū)中的數(shù)據(jù),如果調(diào)用的時(shí)候沒(méi)有數(shù)據(jù)到達(dá),那么此Readlin()方法將一直掛在調(diào)用上,直到讀到一些數(shù)據(jù),此函數(shù)調(diào)用才返回;而非阻塞套接字
3、是指在執(zhí)行此套接字的網(wǎng)絡(luò)調(diào)用時(shí),不管是否執(zhí)行成功,都立即返回。同樣調(diào)用StreamReader類的Readlin()方法讀取網(wǎng)絡(luò)緩沖區(qū)中數(shù)據(jù),不管是否讀到數(shù)據(jù)都立即返回,而不會(huì)一直掛在此函數(shù)調(diào)用上。在Windows網(wǎng)絡(luò)通信軟件開(kāi)發(fā)中,最為常用的方法就是異步非阻塞套接字。平常所說(shuō)的CS(客戶端服務(wù)器)結(jié)構(gòu)的軟件采用的方式就是異步非阻塞模式的。其實(shí)在用C#進(jìn)行網(wǎng)絡(luò)編程中,我們并不需要了解什么同步、異步、阻塞和非阻塞的原理和工作機(jī)制,因?yàn)樵?
4、FrameWrokSDK中已經(jīng)已經(jīng)把這些機(jī)制給封裝好了。下面我們就用C#開(kāi)一個(gè)具體的網(wǎng)絡(luò)程序來(lái)說(shuō)明一下問(wèn)題。一本文中介紹的程序設(shè)計(jì)及運(yùn)行環(huán)境一本文中介紹的程序設(shè)計(jì)及運(yùn)行環(huán)境(1).微軟視窗2000服務(wù)器版(2)..FramewkSDKBeta2以上版本if(socketFClient.Connected)ListBox1.Items.Add(“已經(jīng)和客戶端成功連接!“)while(true)創(chuàng)建wkStream對(duì)象通過(guò)網(wǎng)絡(luò)套節(jié)字來(lái)接受和
5、發(fā)送數(shù)據(jù)wkStream=newwkStream(socketFClient)從當(dāng)前數(shù)據(jù)流中讀取一行字符,返回值是字符串streamReader=newStreamReader(wkStream)stringmsg=streamReader.ReadLine()ListBox1.Items.Add(“收到客戶端信息:“msg)streamWriter=newStreamWriter(wkStream)if(textBox1.Text!=
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c#編程規(guī)范
- msdn c#編程指南
- c#的usb通訊編程
- c#編程4.0外文翻譯
- arcengine基于c#編程實(shí)例講解
- 銀行存取款案例(c#編程)
- c#編程知識(shí)匯編之一【201401】
- c# .net_經(jīng)典編程例子400個(gè)
- c#網(wǎng)絡(luò)編程專題9實(shí)現(xiàn)類似qq的即時(shí)通信程序
- c#數(shù)據(jù)庫(kù)編程添加刪除記錄
- c#數(shù)據(jù)庫(kù)編程_添加刪除記錄
- C、C++和C#語(yǔ)言中編程實(shí)體的研究.pdf
- 基于c#的socket編程的tcp異步實(shí)現(xiàn)
- 基于c#聊天群的編程畢業(yè)論文
- c#網(wǎng)絡(luò)協(xié)議題庫(kù)-簡(jiǎn)答
- c#文獻(xiàn)翻譯---c#的優(yōu)點(diǎn)
- [c#畢設(shè)]網(wǎng)絡(luò)辦公助理c#.net
- c#基于tcp協(xié)議網(wǎng)絡(luò)聊天程序
- c#程序
- [c#畢設(shè)]c#人事管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論