網(wǎng)絡(luò)編程復(fù)習(xí)第_第1頁(yè)
網(wǎng)絡(luò)編程復(fù)習(xí)第_第2頁(yè)
網(wǎng)絡(luò)編程復(fù)習(xí)第_第3頁(yè)
網(wǎng)絡(luò)編程復(fù)習(xí)第_第4頁(yè)
網(wǎng)絡(luò)編程復(fù)習(xí)第_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

作業(yè)二P163頁(yè)5.35.7P189頁(yè)6.16.26.36.4補(bǔ)充:循環(huán)創(chuàng)建5個(gè)子線程,同步處理將公共變量i加1,i初值為0。5.3線程有哪幾種同步機(jī)制?它們之間的關(guān)系及特點(diǎn)是什么?主要有四種:臨界區(qū),保證在某一個(gè)時(shí)間只有一個(gè)線程可以訪問數(shù)據(jù)的?;コ饬浚褐饕糜诜乐雇瑫r(shí)訪問一個(gè)共享資源。信號(hào)量:通過(guò)計(jì)數(shù)來(lái)限制對(duì)共享資源的訪問量。事件:用于通知其他等待線程某事情已經(jīng)發(fā)生。臨界區(qū)對(duì)象與互斥量對(duì)象相似,但前者只能被同一進(jìn)程的線程使用,后者可以跨進(jìn)程使用。

5.7等待函數(shù)有哪兩個(gè),它們各適用于什么場(chǎng)合?WaitForSingleObject函數(shù)用于等待單個(gè)對(duì)象變?yōu)橛行盘?hào)狀態(tài)。WaitForMultipleObjects函數(shù)可以同時(shí)監(jiān)測(cè)多個(gè)同步對(duì)象變?yōu)橛行盘?hào)狀態(tài)。#include<windows.h>#include<stdio.h>intiCounter=0;CRITICAL_SECTIONgCriticalSection;DWORDthreadA(){EnterCriticalSection(&gCriticalSection);iCounter++;printf("%d\n",iCounter);LeaveCriticalSection(&gCriticalSection);return0;}voidmain(){DWORDThreadId[5];HANDLEhThread[5];InitializeCriticalSection(&gCriticalSection);//創(chuàng)建線程for(inti=0;i<5;i++)hThread[i]=CreateThread(0,0,(LPTHREAD_START_ROUTINE)threadA,NULL,0,&ThreadId[i]);WaitForMultipleObjects(5,hThread,TRUE,INFINITE);DeleteCriticalSection(&gCriticalSection);}6.1簡(jiǎn)述基于MFC的網(wǎng)絡(luò)編程與使用winsockAPI進(jìn)行編程有哪些區(qū)別。在VC++集成編譯環(huán)境下,基于windows編程有兩種途徑:一是使用windowsAPI函數(shù),另一種是MFC?;赪indowsAPI編程是十分麻煩的,因?yàn)槟阈枰?00多個(gè)API函數(shù)打交道,為了簡(jiǎn)化windows編程。微軟又基于windowsAPI編制了MFC類庫(kù)。MFC利用C++語(yǔ)言,對(duì)windowsAPI函數(shù)進(jìn)行了封裝,使編程得以簡(jiǎn)化,同時(shí),還在VC++中集成了AppWizard、classWizard等工具來(lái)支持MFC,進(jìn)一步簡(jiǎn)化windows程序編制。6.2CSocket類與CAsyncSocket類有什么區(qū)別,使用有何不同。CAsyncSocket類,在很低的層次上對(duì)WindowsSocketsAPI進(jìn)行了封裝。CSocket類,從CAsyncSocket類派生,是對(duì)WindowsSocketsAPI的高級(jí)封裝。CSocket類的高級(jí)表現(xiàn)在三個(gè)方面:(1)CSocket結(jié)合archive類來(lái)使用套接字。(2)CSocket管理了通信的許多方面,如字節(jié)順序問題和字符串轉(zhuǎn)換問題。(3)CSocket類為Windows消息的后臺(tái)處理提供了阻塞的工作模式。因此CSocket類使用更加容易。6.3CSocket類與CAsyncSocket類的使用各自有哪些注意事項(xiàng)。CAsyncSocket是異步非阻塞類.CSocket是CAsyncSocket的派生類,是同步阻塞類.

CAsyncSocket適合于對(duì)網(wǎng)絡(luò)通信細(xì)節(jié)很了解,希望利用回調(diào)通知網(wǎng)絡(luò)事件的程序員使用。CSocket類的串行化I/O方式對(duì)程序穩(wěn)定性、編程強(qiáng)度有積極作用,但是不適合數(shù)據(jù)報(bào)網(wǎng)絡(luò)編程。CSocket類的Connect()和Accept()支持阻塞調(diào)用。從不調(diào)用OnConnect()OnSend()事件處理函數(shù)。6.4簡(jiǎn)述CSocket,CArchive和CSocketFile類三者之間的關(guān)系。CSocket與類CSocketFile和CArchive一起來(lái)管理對(duì)數(shù)據(jù)的發(fā)送和接收,也叫串行化I/O方式。CArchive是將用戶的數(shù)據(jù)保存到永久性存儲(chǔ)對(duì)象的一種技術(shù),通過(guò)三者的配合完全可以像讀寫文件一樣讀寫Socket網(wǎng)絡(luò)I/O數(shù)據(jù)。

針對(duì)流式套接字的CSocket類的編程模型。為服務(wù)器端程序設(shè)計(jì)如下:(1)CSocketsockServ;//創(chuàng)建空的服務(wù)器端監(jiān)聽套接字對(duì)象。//用nPort端口,創(chuàng)建監(jiān)聽套接字對(duì)象的套接字句柄。(2)sockServ.Create(nPort);(3)sockServ.Listen();//啟動(dòng)對(duì)于客戶端連接請(qǐng)求的監(jiān)聽。(4)CSocketsockRecv;//創(chuàng)建空的服務(wù)器端連接套接字對(duì)象。//接收客戶端的連接請(qǐng)求,并將其他的任務(wù)轉(zhuǎn)交給連接套接字對(duì)象。sockServ.Accept(sockRecv);(5)CSockFile*file;file=newCSockFile(&sockRecv);//創(chuàng)建文件對(duì)象并關(guān)聯(lián)到連接套接字對(duì)象。(6)CArchive*arIn,arOut;arIn=CArchive(&file,CArchive::load);//創(chuàng)建用于輸入的歸檔對(duì)象,arOut=CArchive(&file,CArchive::store);//創(chuàng)建用于輸出的歸檔對(duì)象。(7)arIn>>dwValue;

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論