版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第15章網(wǎng)絡(luò)編程《C++高級(jí)編程》C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第1頁(yè)!本章主要教學(xué)內(nèi)容簡(jiǎn)略介紹網(wǎng)絡(luò)的基本知識(shí)、功能及協(xié)議??蛻魴C(jī)/服務(wù)器的網(wǎng)絡(luò)模型及其原理。網(wǎng)絡(luò)應(yīng)用程序的編寫(xiě):客戶端應(yīng)用程序、服務(wù)器端應(yīng)用程序、瀏覽器程序、電子郵件發(fā)送程序。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第2頁(yè)!15.1網(wǎng)絡(luò)概述計(jì)算機(jī)網(wǎng)絡(luò):地理位置不同、具有獨(dú)立功能的多個(gè)計(jì)算機(jī)系統(tǒng),通過(guò)通信設(shè)備和線路互相連接起來(lái),使用功能完整的網(wǎng)絡(luò)軟件來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)資源共享的大系統(tǒng),稱為計(jì)算機(jī)網(wǎng)絡(luò)。計(jì)算機(jī)網(wǎng)絡(luò)從結(jié)構(gòu)上可以分乘兩部分:資源子網(wǎng)和通信子網(wǎng)。計(jì)算機(jī)網(wǎng)絡(luò)的組成:C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第3頁(yè)!15.1網(wǎng)絡(luò)概述計(jì)算機(jī)網(wǎng)絡(luò)組成示意圖C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第4頁(yè)!
資源子網(wǎng):負(fù)責(zé)全網(wǎng)的數(shù)據(jù)處理以及向網(wǎng)絡(luò)用戶提供網(wǎng)絡(luò)資源及網(wǎng)絡(luò)服務(wù)等。一般由主計(jì)算機(jī)系統(tǒng)、終端、各種硬件和軟件資源和數(shù)據(jù)資源等組成。
通信子網(wǎng):為資源子網(wǎng)提供信息傳送服務(wù),是支持資源子網(wǎng)上用戶之間相互通信的基本環(huán)境。一般由通信控制器、集線器、調(diào)制解調(diào)器、網(wǎng)絡(luò)通信媒體等組成。15.1網(wǎng)絡(luò)概述C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第5頁(yè)!其它分類有:按交換方式、按傳輸媒體等分類按網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)可分為:–星型網(wǎng)絡(luò)–總線型網(wǎng)絡(luò)–環(huán)型網(wǎng)絡(luò)
-網(wǎng)格型網(wǎng)絡(luò)15.1網(wǎng)絡(luò)概述C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第6頁(yè)!計(jì)算機(jī)網(wǎng)絡(luò)的體系結(jié)構(gòu)有兩大類:對(duì)等網(wǎng)絡(luò)和基于服務(wù)器的網(wǎng)絡(luò)對(duì)等網(wǎng)絡(luò)的特點(diǎn):
①在對(duì)等網(wǎng)絡(luò)中,沒(méi)有專用的服務(wù)器,網(wǎng)上所有的計(jì)算機(jī)地位是平等的;
②網(wǎng)上所有計(jì)算機(jī)都既是客戶機(jī)又是服務(wù)器;
③每臺(tái)計(jì)算機(jī)的用戶自己決定將其計(jì)算機(jī)中的哪些數(shù)據(jù)共享到網(wǎng)絡(luò)中去;
④沒(méi)有負(fù)責(zé)整個(gè)網(wǎng)絡(luò)管理的網(wǎng)絡(luò)管理員;15.1網(wǎng)絡(luò)概述C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第7頁(yè)!基于服務(wù)器的網(wǎng)絡(luò)的優(yōu)點(diǎn):
①易于管理共享資源
②安全性好
③數(shù)據(jù)備份方便
④網(wǎng)絡(luò)規(guī)模基本不受限制15.1網(wǎng)絡(luò)概述C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第8頁(yè)!服務(wù)器Server:一臺(tái)能夠提供和管理可共享資源的計(jì)算機(jī)??蛻魴C(jī)Client:能夠使用服務(wù)器上的可共享資源的計(jì)算機(jī)。Client/Server(客戶機(jī)/服務(wù)器)結(jié)構(gòu)15.1網(wǎng)絡(luò)概述C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第9頁(yè)!15.1.1客戶機(jī)/服務(wù)器模型客戶機(jī)/服務(wù)器模型的工作原理:請(qǐng)求通信設(shè)施請(qǐng)求響應(yīng)客戶端服務(wù)器端C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第10頁(yè)!(2)異步性客戶機(jī)/服務(wù)器模式可以很好地支持異步性操作,方便遠(yuǎn)程通信的實(shí)現(xiàn)。15.1.1客戶機(jī)/服務(wù)器模型C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第11頁(yè)!15.1.2網(wǎng)絡(luò)協(xié)議1984年,國(guó)際標(biāo)準(zhǔn)組織ISO公布了一個(gè)作為未來(lái)網(wǎng)絡(luò)協(xié)議指南的模型,該模型被稱為開(kāi)放系統(tǒng)互聯(lián)模型OSI。雖然完全遵守OSI的網(wǎng)絡(luò)產(chǎn)品并沒(méi)有成為網(wǎng)絡(luò)市場(chǎng)上的標(biāo)準(zhǔn),但OSI還是可以提供一個(gè)概念上和功能上的框架,可以作為學(xué)習(xí)網(wǎng)絡(luò)知識(shí)的依據(jù),作為網(wǎng)路實(shí)現(xiàn)的參考。2、ISO/OSI參考模型C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第12頁(yè)!15.1.2網(wǎng)絡(luò)協(xié)議雖然OSI參考模型的實(shí)際應(yīng)用意義不是很大,但它對(duì)于理解網(wǎng)絡(luò)協(xié)議內(nèi)部的運(yùn)作的確很有幫助,也為我們學(xué)習(xí)網(wǎng)絡(luò)協(xié)議提供了一個(gè)很好的參考。在現(xiàn)實(shí)網(wǎng)絡(luò)世界里,TCP/IP協(xié)議棧獲得了更為廣泛的應(yīng)用。
C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第13頁(yè)!TCP/IP協(xié)議是70年代中期美國(guó)國(guó)防部為其ARPANET廣域網(wǎng)開(kāi)發(fā)的網(wǎng)絡(luò)體系結(jié)構(gòu)和協(xié)議標(biāo)準(zhǔn),以它為基礎(chǔ)組建的INTERNET是目前國(guó)際上規(guī)模最大的計(jì)算機(jī)網(wǎng)絡(luò),正因?yàn)镮NTERNET的廣泛使用,使得TCP/IP成了事實(shí)上的標(biāo)準(zhǔn)。15.1.2網(wǎng)絡(luò)協(xié)議C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第14頁(yè)!15.1.2網(wǎng)絡(luò)協(xié)議3、UDP協(xié)議UserDataProtocol用戶數(shù)據(jù)報(bào)協(xié)議UDP與TCP/IP的差異:UDP直接利用IP協(xié)議進(jìn)行UDP數(shù)據(jù)報(bào)的傳輸。UDP提供的是無(wú)連接的、不可靠的數(shù)據(jù)報(bào)投遞服務(wù)。UDP常用于數(shù)據(jù)量少的數(shù)據(jù)傳輸,當(dāng)使用UDP協(xié)議傳輸信息流時(shí),用戶負(fù)責(zé)解決排序、差錯(cuò)確認(rèn)等問(wèn)題。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第15頁(yè)!1.什么是Socket?15.2.1網(wǎng)絡(luò)編程的概述一、Socket套接字(Socket)最初是由加利福尼亞大學(xué)Berkeley分校為UNIX操作系統(tǒng)開(kāi)發(fā)的網(wǎng)絡(luò)通信接口。20世紀(jì)80年代初,加利福尼亞大學(xué)Berkeley將美國(guó)國(guó)防部高研署提供的TCP/IP集成到Unix中,并很快開(kāi)發(fā)了TCP/IP應(yīng)用程序接口(API),即Socket(套接字)接口。隨著UNIX操作系統(tǒng)的廣泛使用,套接字成為當(dāng)前最流行的網(wǎng)絡(luò)通信應(yīng)用程序接口之一。
C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第16頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述
Socket實(shí)際上是指一個(gè)通信端點(diǎn),借助于它,用戶所開(kāi)發(fā)的Socket應(yīng)用程序,可以通過(guò)網(wǎng)絡(luò)與其它Socket應(yīng)用程序進(jìn)行通信。套接字sockets是支持TCP/IP協(xié)議的網(wǎng)絡(luò)通信的基本操作單元。可以將套接字看作不同主機(jī)間的進(jìn)程進(jìn)行雙向通信的端點(diǎn)。它構(gòu)成了在單個(gè)主機(jī)內(nèi)及整個(gè)網(wǎng)際間的編程界面。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第17頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述2.套接字Socket的分類根據(jù)傳輸數(shù)據(jù)類型的不同,套按字可分為面向連接的字節(jié)流套接字(streamsockets)
和面向無(wú)連接的數(shù)據(jù)報(bào)套接字(datagramsockets)兩種類型。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第18頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述在TCP/IP協(xié)議簇中對(duì)應(yīng)TCP協(xié)議。通信端點(diǎn)使用TCP對(duì)應(yīng)的INTERNET地址互相連接,可保證按正確的順序以及單一和可靠的地址傳輸數(shù)據(jù)。包長(zhǎng)沒(méi)有限制,信包的傳輸也不重復(fù)。
C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第19頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述利用數(shù)據(jù)報(bào)服務(wù)可實(shí)現(xiàn)一些簡(jiǎn)單的網(wǎng)絡(luò)服務(wù),如網(wǎng)點(diǎn)檢測(cè)程序PING。由于不建立連接,數(shù)據(jù)報(bào)協(xié)議的連接比字節(jié)流協(xié)議快。雙方不需要互連,按固定的最大長(zhǎng)度進(jìn)行傳輸,因而適用于單個(gè)報(bào)文傳輸,或較小文件的傳輸。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第20頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述1)服務(wù)器進(jìn)程創(chuàng)建套接字
①服務(wù)進(jìn)程總是先于客戶進(jìn)程啟動(dòng),服務(wù)進(jìn)程首先調(diào)用socket()函數(shù)創(chuàng)建自已端的一個(gè)字節(jié)流套接字,并提供三個(gè)參數(shù):網(wǎng)絡(luò)地址類型,一般取AF_INEF;套接字類型,這里取SOCK_STREAM;網(wǎng)絡(luò)協(xié)議,缺省為T(mén)CP/IP協(xié)議,對(duì)應(yīng)參數(shù)為0。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第21頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述③給套接字命名。由socket()函數(shù)創(chuàng)建的套接字是沒(méi)有名字的。所謂命名,就是用bind()函數(shù)將服務(wù)器地址捆綁到創(chuàng)建的套接字上。④服務(wù)器進(jìn)程準(zhǔn)備接受來(lái)自客戶機(jī)的連接請(qǐng)求。首先調(diào)用listen()函數(shù),讓服務(wù)器進(jìn)程進(jìn)入監(jiān)聽(tīng)狀態(tài);然后調(diào)用accept()函數(shù),準(zhǔn)備接受客戶機(jī)的連接信號(hào)。無(wú)連接請(qǐng)求時(shí),服務(wù)進(jìn)程被阻塞。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第22頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述②客戶方調(diào)用connect()函數(shù)向服務(wù)進(jìn)程發(fā)出連接請(qǐng)求。3)當(dāng)連接請(qǐng)求到來(lái)后,被阻塞服務(wù)進(jìn)程的accpet()函數(shù)生成一個(gè)新的字節(jié)流套接字,并返回客戶機(jī)的sockaddr_in結(jié)構(gòu)變量,從而在服務(wù)器應(yīng)用程序中用新的被賦予客戶機(jī)地址的套接字同客戶進(jìn)程進(jìn)行連接,然后向客戶方返回接受信號(hào)。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第23頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述5)服務(wù)進(jìn)程和客戶進(jìn)程可通過(guò)調(diào)用shutdown()和colse()關(guān)閉套接字上的所有發(fā)送和接收操作,撤銷(xiāo)套接字并中斷連接。整個(gè)運(yùn)作過(guò)程用圖表示如下:C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第24頁(yè)!WinSocket同時(shí)支持字節(jié)流套接字和數(shù)據(jù)報(bào)套接字。面向連接的字節(jié)流套接字的時(shí)序圖見(jiàn)圖6-3;面向無(wú)連接的數(shù)據(jù)報(bào)套接字的時(shí)序圖見(jiàn)圖6-4。15.2.1網(wǎng)絡(luò)編程的概述4.
WinSocketC+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第25頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述3)Listen功能:等待Socket請(qǐng)求。函數(shù)原型及參數(shù)說(shuō)明:P149-1504)Accept功能:取得對(duì)列上的個(gè)連接請(qǐng)求,并建立一個(gè)具有與Socket相同特性的套接字。函數(shù)原型及參數(shù)說(shuō)明:P150C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第26頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述7)Send功能:發(fā)送數(shù)據(jù)到已連接的客戶端或服務(wù)器端。函數(shù)原型及參數(shù)說(shuō)明:P1518)其他函數(shù):AttachDetachGetLastErrorShutDownOnAcceptCloseIsBlockingFromHandleCancelBlockingCallC+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第27頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述方法2)的實(shí)現(xiàn)步驟:服務(wù)器端:Construct->Create->Bind->Listen->Accept->Send->Close客戶機(jī)端:Construct->Create->Connect->Receive->CloseC+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第28頁(yè)!15.2.3服務(wù)器端的編程實(shí)例1.創(chuàng)建應(yīng)用程序的基本框架2.修改資源3.增加兩個(gè)類4.實(shí)現(xiàn)網(wǎng)絡(luò)功能5.相關(guān)函數(shù)的實(shí)現(xiàn)C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第29頁(yè)!對(duì)于Intranet服務(wù)器或萬(wàn)維網(wǎng)服務(wù)器上的目標(biāo)文件,可以使用“統(tǒng)一資源定位符(URL)”地址(該地址以“”開(kāi)始)。例如,.microsoft./為Microsoft網(wǎng)站的萬(wàn)維網(wǎng)URL地址。15.2.4瀏覽器和MAPI的編程實(shí)例C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第30頁(yè)!
host,主機(jī),指定的服務(wù)器的域名系統(tǒng)(DNS)主機(jī)名或IP地址。
port,端口號(hào),整數(shù),可選,省略時(shí)使用方案的默認(rèn)端口,如http的默認(rèn)端口為80。
path,路徑,由零或多個(gè)“/”符號(hào)隔開(kāi)的字符串,一般用來(lái)表示主機(jī)上的一個(gè)目錄或文件地址。15.2.4瀏覽器和MAPI的編程實(shí)例C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第31頁(yè)!MAPI:
MessagingApplicationProgrammingInterface2.MAPI的編程實(shí)例15.2.4瀏覽器和MAPI的編程實(shí)例
MAPI是一種消息體系結(jié)構(gòu),可以使多個(gè)系統(tǒng)進(jìn)行信息交換,也可以發(fā)送和接收電子郵件。MAPI可以在不同的操作系統(tǒng)上進(jìn)行通信,也可以在多個(gè)硬件平臺(tái)之間實(shí)現(xiàn)跨越。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第32頁(yè)!
VisualC++中的CDocument類提供了對(duì)MAPI的支持。但只提供發(fā)送消息和文件的功能,其他功能如檢索等還沒(méi)有實(shí)現(xiàn)。發(fā)送消息和文件的功能是通過(guò)使用OnFileSendMail()函數(shù)和對(duì)應(yīng)的用戶接口處理函數(shù)OnUpdateFileSendMail()函數(shù)實(shí)現(xiàn)的。15.2.4瀏覽器和MAPI的編程實(shí)例C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第33頁(yè)!15.3DHTML這種效果非常類似于Windows應(yīng)用程序的特性,即通過(guò)圖形化的界面為用戶提供盡可能多的功能。實(shí)際上,采用這種方式可以使同一個(gè)頁(yè)面上包含更多的信息,對(duì)于龐大的網(wǎng)絡(luò)站點(diǎn)來(lái)說(shuō)十分有用。要實(shí)現(xiàn)這種效果,單純依靠HTML和JavaScript已經(jīng)無(wú)法實(shí)現(xiàn),必須采用新的技術(shù)——這就是動(dòng)態(tài)HTML。所謂動(dòng)態(tài)HTML(DynamicHTML,簡(jiǎn)稱DHTML),其實(shí)并不是一門(mén)新的語(yǔ)言,它只是HTML、CSS和客戶端腳本的一種集成。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第34頁(yè)!15.3DHTML可見(jiàn),DHTML技術(shù)是一種非常實(shí)用的網(wǎng)頁(yè)設(shè)計(jì)技術(shù)。實(shí)際上,DHTML早已廣泛地應(yīng)用到了各類大大小小的網(wǎng)站中,成為高水平網(wǎng)頁(yè)必不可少的組成部分。所有這些功能均可用瀏覽器完成而無(wú)需請(qǐng)求Web服務(wù)器,同時(shí)也無(wú)需重新裝載網(wǎng)頁(yè)。這是因?yàn)橐磺泄δ芏及贖TML文件中,隨著對(duì)網(wǎng)頁(yè)的請(qǐng)求而一次性下載到瀏覽器端。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第35頁(yè)!15.3DHTMLCSS就是一種叫做樣式表(stylesheet)的技術(shù)。也有的人稱之為層疊樣式表(CascadingStylesheet)。在主頁(yè)制作時(shí)采用CSS技術(shù),可以有效地對(duì)頁(yè)面的布局、字體、顏色、背景和其它效果實(shí)現(xiàn)更加精確的控制。只要對(duì)相應(yīng)的代碼做一些簡(jiǎn)單的修改,就可以改變同一頁(yè)面的不同部分,或者頁(yè)數(shù)不同的網(wǎng)頁(yè)的
外觀和格式。什么是CSS?C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第36頁(yè)!15.3.1DHTML對(duì)象模型HTML的結(jié)構(gòu)包括頭部(Head)、主體(Body)兩大部分,其中頭部描述瀏覽器所需的信息,而主體則包含所要說(shuō)明的具體內(nèi)容。HTML是一種ASCII標(biāo)記語(yǔ)言的格式。HTML基本代碼見(jiàn)P166。
HTML只不過(guò)是組合成一個(gè)文本文件的一系列標(biāo)簽。HTML標(biāo)簽通常是英文詞匯的全稱(如塊引用:blockquote)或縮略語(yǔ)(如“p”代表Paragragh)。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第37頁(yè)!關(guān)于標(biāo)簽,需要記住的是,它們是成對(duì)出現(xiàn)的。每當(dāng)使用一個(gè)標(biāo)簽--如<blockquote>,則必須以另一個(gè)標(biāo)簽</blockquote>將它關(guān)閉。注意“blockquote”前的斜杠,那就是關(guān)閉標(biāo)簽與打開(kāi)標(biāo)簽的區(qū)別。但是也有一些標(biāo)簽例外。比如,<input>標(biāo)簽就不需要。15.3.1DHTML對(duì)象模型C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第38頁(yè)!15.3.1DHTML對(duì)象模型DHTML模型的基本層次:P167VisualC++通過(guò)MFC和ATL來(lái)支持DHTML。DHTML對(duì)象模型通過(guò)一套帶有IHTML的COM對(duì)象來(lái)面向VisualC++的開(kāi)發(fā)者。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第39頁(yè)!15.3.1DHTML對(duì)象模型由Inline信息服務(wù)公司開(kāi)發(fā)的iHTML,是套HTML擴(kuò)展工具,通過(guò)iHTMLDLL解釋執(zhí)行,它作為一個(gè)API應(yīng)用程序,直接同服務(wù)器連接。iHTML提供了超過(guò)30個(gè)新的HTML函數(shù),包括ODBC支持和20個(gè)環(huán)境變量。iHTML可在WindowsNT,Netscape和ProcessWeb服務(wù)器上運(yùn)行。什么是IHTML?C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第40頁(yè)!15.1網(wǎng)絡(luò)概述計(jì)算機(jī)網(wǎng)絡(luò)結(jié)構(gòu)示意圖C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第41頁(yè)!計(jì)算機(jī)網(wǎng)絡(luò)的分類:
按網(wǎng)絡(luò)覆蓋的地理范圍可分為:–局域網(wǎng)LAN(localareanetwork)–城域網(wǎng)MAN(metropolitanareanetwork)–廣域網(wǎng)WAN(wideareanetwork)15.1網(wǎng)絡(luò)概述C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第42頁(yè)!計(jì)算機(jī)網(wǎng)絡(luò)功能主要有:–數(shù)據(jù)通信–資源共享:共享硬件、軟件、信息和知識(shí)等–分布式數(shù)據(jù)處理,提高可靠性15.1網(wǎng)絡(luò)概述C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第43頁(yè)!對(duì)等網(wǎng)絡(luò)的優(yōu)點(diǎn):–規(guī)模小,成本低,實(shí)現(xiàn)簡(jiǎn)單15.1網(wǎng)絡(luò)概述基于服務(wù)器的網(wǎng)絡(luò)的特點(diǎn):
①網(wǎng)絡(luò)中有專用服務(wù)器(或主機(jī))
②網(wǎng)絡(luò)中有客戶機(jī)(或終端)
③有網(wǎng)絡(luò)操作系統(tǒng)和網(wǎng)絡(luò)管理員對(duì)網(wǎng)絡(luò)進(jìn)行統(tǒng)一管理C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第44頁(yè)!15.1網(wǎng)絡(luò)概述基于服務(wù)器的網(wǎng)絡(luò)結(jié)構(gòu)又分為:Client/Server結(jié)構(gòu)(胖客戶機(jī))Browser/Server結(jié)構(gòu)(瘦客戶機(jī))。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第45頁(yè)!服務(wù)器需要運(yùn)行某一種網(wǎng)絡(luò)操作系統(tǒng),例如WindowsServer2003、NovellNetware、Unix等。通常有多臺(tái)客戶機(jī)連接到同一臺(tái)服務(wù)器上,它們除了能運(yùn)行自己的應(yīng)用程序外,還可以通過(guò)網(wǎng)絡(luò)獲得服務(wù)器的服務(wù)。在這種以服務(wù)器為中心的網(wǎng)絡(luò)中,一旦服務(wù)器出現(xiàn)故障或者被關(guān)閉,整個(gè)網(wǎng)絡(luò)將無(wú)法正常運(yùn)行。15.1網(wǎng)絡(luò)概述C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第46頁(yè)!15.1.1客戶機(jī)/服務(wù)器模型采用客戶機(jī)/服務(wù)器模型的原因:不對(duì)等現(xiàn)象的存在:服務(wù)器端有豐富的資源,強(qiáng)大的運(yùn)算能力,可存放大量的資源和信息。而客戶端在軟硬件的配置上相對(duì)薄弱,不可能也沒(méi)有必要在每一臺(tái)客戶機(jī)上存放大量資源。為節(jié)約資源,提高利用率和使用效率,讓服務(wù)器上的資源公有,讓多個(gè)客戶端共享這些資源。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第47頁(yè)!15.1.2網(wǎng)絡(luò)協(xié)議通俗地說(shuō),網(wǎng)絡(luò)協(xié)議就是網(wǎng)絡(luò)之間溝通、交流的橋梁,只有相同網(wǎng)絡(luò)協(xié)議的計(jì)算機(jī)才能進(jìn)行信息的溝通與交流。這就好比人與人之間交流所使用的各種語(yǔ)言一樣,只有使用相同語(yǔ)言才能正常、順利地進(jìn)行交流。從專業(yè)角度定義,網(wǎng)絡(luò)協(xié)議是計(jì)算機(jī)在網(wǎng)絡(luò)中實(shí)現(xiàn)通信時(shí)必須遵守的約定,也就是通信協(xié)議。主要是對(duì)信息傳輸?shù)乃俾?、傳輸代碼、代碼結(jié)構(gòu)、傳輸控制步驟、出錯(cuò)控制等作出規(guī)定并制定出標(biāo)準(zhǔn)。。1、什么是網(wǎng)絡(luò)協(xié)議?C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第48頁(yè)!15.1.2網(wǎng)絡(luò)協(xié)議OSI參考模型采用分層結(jié)構(gòu),將所有互聯(lián)的開(kāi)放系統(tǒng)劃分為功能上相對(duì)獨(dú)立的七層,從最基本的物理連接到最高層次的應(yīng)用。
關(guān)于OSI參考模型的詳細(xì)知識(shí)見(jiàn)附帶文件1。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第49頁(yè)!TCP/IP協(xié)議(TransmissionControlProtocol/InternetProtocol)叫做傳輸控制/網(wǎng)際協(xié)議,又叫網(wǎng)絡(luò)通訊協(xié)議,這個(gè)協(xié)議是Internet國(guó)際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ)。
15.1.2網(wǎng)絡(luò)協(xié)議3、TCP/IP協(xié)議模型C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第50頁(yè)!TCP/IP是網(wǎng)絡(luò)中使用的基本的通信協(xié)議。雖然從名字上看TCP/IP包括兩個(gè)協(xié)議,傳輸控制協(xié)議(TCP)和網(wǎng)際協(xié)議(IP),但TCP/IP實(shí)際上是一組協(xié)議,它包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP、TFTP等許多協(xié)議,這些協(xié)議一起稱為T(mén)CP/IP協(xié)議。
關(guān)于TCP/IP協(xié)議的基礎(chǔ)知識(shí)見(jiàn)附帶文件1。15.1.2網(wǎng)絡(luò)協(xié)議C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第51頁(yè)!網(wǎng)絡(luò)編程方法15.2網(wǎng)絡(luò)應(yīng)用程序編寫(xiě)15.2.1網(wǎng)絡(luò)編程的概述SocketWinSocketRPC命名管道郵箱C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第52頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述90年代初,由SunMicrosystems,JSBCorporation,F(xiàn)TPsoftware,Microdyne和Microsoft等幾家公司共同制定了一套標(biāo)準(zhǔn),即WindowsSockets規(guī)范。它是BerkeleySockets的重要擴(kuò)充,主要體現(xiàn)在它增加了一些異步函數(shù)和符合Windows消息驅(qū)動(dòng)特性的網(wǎng)絡(luò)事件異步選擇機(jī)制。WindowsSockets規(guī)范是一套開(kāi)放的、支持多種協(xié)議的Windows下的網(wǎng)絡(luò)編程接口。目前實(shí)際應(yīng)用中的WindowsSockets規(guī)范主要有1.1版和2.0版,其中1.1版只支持TCP/IP協(xié)議,而2.0版支持多協(xié)議,并具有良好的向后兼容性。
C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第53頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述一般來(lái)說(shuō),跨機(jī)應(yīng)用進(jìn)程之間要在網(wǎng)絡(luò)環(huán)境下進(jìn)行通信,必須要在網(wǎng)絡(luò)的每一端都要建立一個(gè)套接字,兩個(gè)套接字之間可以是建立連接的,也可以是無(wú)連接的,并通過(guò)對(duì)套接字的“讀”、“寫(xiě)”操作實(shí)現(xiàn)網(wǎng)絡(luò)通信功能。像文件那樣有打開(kāi)、讀、寫(xiě)、關(guān)閉的方式。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第54頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述
提供沒(méi)有記錄邊界的數(shù)據(jù)流,字節(jié)流不按記錄定界:可以是雙向的字節(jié)流(應(yīng)用程序是全雙工:可以通過(guò)套接字同時(shí)傳輸和接收)??梢蕾嚵鱾鬟f有序的、不重復(fù)的數(shù)據(jù)。(“有序”指數(shù)據(jù)包按發(fā)送順序送達(dá)?!安恢貜?fù)”指一個(gè)特定的數(shù)據(jù)包只能獲取一次。)這能確保收到流消息,而流非常適合處理大量數(shù)據(jù)。1)字節(jié)流套接字C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第55頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述2)數(shù)據(jù)報(bào)套接字?jǐn)?shù)據(jù)報(bào)套接字支持雙向數(shù)據(jù)流,此數(shù)據(jù)流不能保證按順序和不重復(fù)送達(dá)。在TCP/IP協(xié)議簇中對(duì)應(yīng)UDP協(xié)議。通信端點(diǎn)使用UDP對(duì)應(yīng)的INTERNET地址。不能保證所有數(shù)據(jù)都準(zhǔn)確有序地到達(dá)目的地。不保證順序性、可靠性和無(wú)重復(fù)性。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第56頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述3.套接字Socket的編程要點(diǎn)和過(guò)程不論是哪種套接字編程,采用的都是客戶機(jī)/服務(wù)器方式,其運(yùn)作過(guò)程基本類似。字節(jié)流套接字的服務(wù)進(jìn)程和客戶進(jìn)程,在通信前必須創(chuàng)建各自的套接字以建立連接,然后對(duì)相應(yīng)的套接字進(jìn)行“讀”、“寫(xiě)”操作,實(shí)現(xiàn)信息的交換。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第57頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述②給套接字地址變量賦初值。在生成套接字后,要用服務(wù)器的地址先對(duì)sockaddr_in結(jié)構(gòu)變量賦初值。sockaddr_in在/usr/include/netinet/in.h中有定義,它只適用于INTERNET地址類型,含有INTERNET套接字地址類型、IP端口號(hào)、IP地址等信息。地址類型可取定為AF_INET,IP地址對(duì)服務(wù)器可取任意合法地址INADDR_ANY。IP端口號(hào)可由用戶設(shè)定,但要注意主機(jī)字節(jié)順序向網(wǎng)絡(luò)字節(jié)順序的轉(zhuǎn)換。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第58頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述2)客戶進(jìn)程調(diào)用socket()函數(shù)創(chuàng)建自己端的套接字①給客戶端的sockaddr_in結(jié)構(gòu)體變量賦值。地址類型仍可取AF_INET,端口號(hào)和服務(wù)器方的端口號(hào)相同,欲連服務(wù)器的地址通過(guò)調(diào)用inet_addr()轉(zhuǎn)換得到。也可通過(guò)gethostbyname()函數(shù)將名字轉(zhuǎn)換為指向hostent結(jié)構(gòu)變量的指針,再將hostent結(jié)構(gòu)變量的地址成員用bcopy()復(fù)制到sockaddr_in結(jié)構(gòu)變量上。
C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第59頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述4)一旦客戶機(jī)的套接字收到來(lái)自服務(wù)器的接受信號(hào),則表示客戶機(jī)與服務(wù)器雙方已實(shí)現(xiàn)連接。任一方均可向?qū)Ψ桨l(fā)送,也可接收對(duì)方發(fā)來(lái)的數(shù)據(jù)。這既可通過(guò)send()、recv()函數(shù)來(lái)實(shí)現(xiàn)。也可通過(guò)read()、write()函數(shù)來(lái)交換數(shù)據(jù)。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第60頁(yè)!C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第61頁(yè)!1)Creat功能:建立套接字。函數(shù)原型及參數(shù)說(shuō)明:P149-15015.2.1網(wǎng)絡(luò)編程的概述5.
MFC的CSocket類2)Bind功能:建立套接字端口與網(wǎng)絡(luò)地址連接起來(lái)。函數(shù)原型及參數(shù)說(shuō)明:P150C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第62頁(yè)!15.2.1網(wǎng)絡(luò)編程的概述5)Connect功能:向服務(wù)器提出一個(gè)連接請(qǐng)求。函數(shù)原型及參數(shù)說(shuō)明:P1506)Receive功能:從已連接的客戶端或服務(wù)器端接收數(shù)據(jù)。函數(shù)原型及參數(shù)說(shuō)明:P150-151C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第63頁(yè)!
1)利用CSocketFile類和Archive類實(shí)現(xiàn)。15.2.1網(wǎng)絡(luò)編程的概述15.利用CSocket類直接進(jìn)行數(shù)據(jù)通信的兩種方式
2)利用CSocket類的成員函數(shù)Receive、Send、ReceiveFrom、Sendto、Listen、Accept等實(shí)現(xiàn)。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第64頁(yè)!1.創(chuàng)建應(yīng)用程序的基本框架15.2.2客戶機(jī)端的編程實(shí)例2.修改資源3.增加一個(gè)類4.實(shí)現(xiàn)網(wǎng)絡(luò)功能5.幾個(gè)重要函數(shù)的詳細(xì)代碼C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第65頁(yè)!15.2.4瀏覽器和MAPI的編程實(shí)例1.瀏覽器的編程實(shí)例URL:統(tǒng)一資源定位符(UniformResourceLocator)URL是統(tǒng)一的,因?yàn)樗鼈儾捎孟嗤幕菊Z(yǔ)法,無(wú)論尋址哪種特定類型的資源(網(wǎng)頁(yè)、新聞組)或描述通過(guò)哪種機(jī)制獲取該資源。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第66頁(yè)!URL的一般格式為:
scheme://host:port/path?query#fragment
例如:.imailtone.:80/WebApplication1/WebForm1.aspx?name=tom&;amp;age=20#resume
scheme15.2.4瀏覽器和MAPI的編程實(shí)例C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第67頁(yè)!query,查詢,可選,用于給動(dòng)態(tài)網(wǎng)頁(yè)(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技術(shù)制作的網(wǎng)頁(yè))傳遞參數(shù),可有多個(gè)參數(shù),用“&”符號(hào)隔開(kāi),每個(gè)參數(shù)的名和值用“=”符號(hào)隔開(kāi)。
fragment,信息片斷,字符串,用于指定網(wǎng)絡(luò)資源中的片斷。例如一個(gè)網(wǎng)頁(yè)中有多個(gè)名詞解釋,可使用fragment直接定位到某一名詞解釋。15.2.4瀏覽器和MAPI的編程實(shí)例C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第68頁(yè)!15.2.4瀏覽器和MAPI的編程實(shí)例微軟和其它一些公司開(kāi)發(fā)了MAPI,可使Windows應(yīng)用程序接入到從MicrosoftMail到NovellMHS的多種消息系統(tǒng)。但是,MAPI僅限于在日常工作的水平上工作,即感知郵件的應(yīng)用程序,它可在網(wǎng)絡(luò)上交換郵件與數(shù)據(jù)。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第69頁(yè)!15.3DHTMLDHTML:DynamicHyperTextMarkupLanguage
動(dòng)態(tài)超文本標(biāo)記語(yǔ)言很多網(wǎng)頁(yè)(如新浪)上有一個(gè)重要界面特性——當(dāng)瀏覽者將鼠標(biāo)指針移動(dòng)到頁(yè)面導(dǎo)航條上時(shí),會(huì)動(dòng)態(tài)地彈出一個(gè)菜單,在該菜單中移動(dòng)鼠標(biāo),所指向的菜單項(xiàng)變?yōu)榧t色顯示;如果將鼠標(biāo)指針移出菜單所在范圍,則菜單自動(dòng)隱藏:如果將鼠標(biāo)指針移動(dòng)到導(dǎo)航條上另外一個(gè)區(qū)域,則會(huì)彈出另外一個(gè)菜單。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè),您現(xiàn)在瀏覽的是第70頁(yè)!15.3DHTML使用DHTML技術(shù),可使網(wǎng)頁(yè)設(shè)計(jì)者創(chuàng)建出能夠與用戶交互并包含動(dòng)態(tài)內(nèi)容的頁(yè)面。實(shí)際上,DHTML使網(wǎng)頁(yè)設(shè)計(jì)者可以動(dòng)態(tài)操縱網(wǎng)頁(yè)上的所有元素——甚至是在這些頁(yè)面被裝載以后。利用DHTML,網(wǎng)頁(yè)設(shè)計(jì)者可以動(dòng)態(tài)地隱藏或顯示內(nèi)容、修改樣式定義、激活元素以及為元素定位。DHTML還可使網(wǎng)頁(yè)設(shè)計(jì)者在網(wǎng)頁(yè)上顯示外部信息,方法是將元素捆綁到外部數(shù)據(jù)源(如文件和數(shù)據(jù)庫(kù))上。C+網(wǎng)絡(luò)編程高級(jí)編程共77頁(yè)
溫馨提示
- 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030針織服裝行業(yè)品牌建設(shè)與消費(fèi)者認(rèn)同感研究報(bào)告
- 2025-2030鑒定行業(yè)規(guī)范市場(chǎng)運(yùn)作現(xiàn)發(fā)展前景深度研究報(bào)告行業(yè)規(guī)劃
- 2025-2030造紙行業(yè)投資發(fā)展分析及融資策略研究報(bào)告
- 2025中國(guó)人民財(cái)產(chǎn)保險(xiǎn)公司面向全省招聘理賠崗備考題庫(kù)及一套參考答案詳解
- 胖東來(lái)物流信息化系統(tǒng)建設(shè)方案
- PVD品質(zhì)改善方案
- 未來(lái)五年新形勢(shì)下凍干人凝血酶原復(fù)合物行業(yè)順勢(shì)崛起戰(zhàn)略制定與實(shí)施分析研究報(bào)告
- 未來(lái)五年農(nóng)業(yè)機(jī)械專用設(shè)備修理企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年生產(chǎn)性市場(chǎng)管理服務(wù)企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年雜糧企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略分析研究報(bào)告
- DB21T 3414-2021 遼寧省防汛物資儲(chǔ)備定額編制規(guī)程
- 2024年度中國(guó)LCOS行業(yè)研究報(bào)告:廣泛應(yīng)用于投影、AR/VR、車(chē)載HUD的微顯示技術(shù)
- 2024金屬材料彎曲試驗(yàn)方法
- 代謝相關(guān)(非酒精性)脂肪性肝病防治指南(2024年版)解讀
- DB11-T 1253-2022 地埋管地源熱泵系統(tǒng)工程技術(shù)規(guī)范
- 2024-2029年滴漏式咖啡機(jī)行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃投資研究報(bào)告
- 《審計(jì)法》修訂解讀
- 江蘇省姜堰市勵(lì)才實(shí)驗(yàn)學(xué)校2024屆七年級(jí)數(shù)學(xué)第一學(xué)期期末經(jīng)典試題含解析
- 我國(guó)歷史文化名城保護(hù)面臨的沖擊與對(duì)策
- 白油化學(xué)品安全技術(shù)說(shuō)明書(shū)
- 馬鞍山市恒達(dá)輕質(zhì)墻體材料有限公司智能化生產(chǎn)線環(huán)保設(shè)施改造項(xiàng)目環(huán)境影響報(bào)告表
評(píng)論
0/150
提交評(píng)論