版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算機(jī)網(wǎng)絡(luò)(春季學(xué)期)序號(hào):序號(hào):實(shí)驗(yàn)報(bào)告系別:計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):計(jì)算機(jī)12-1姓名:劉杰學(xué)號(hào):總成績(jī):評(píng)語(yǔ):日期:《計(jì)算機(jī)網(wǎng)絡(luò)》實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱熟悉常見(jiàn)網(wǎng)絡(luò)產(chǎn)品實(shí)驗(yàn)序號(hào)1實(shí)驗(yàn)日期.5.21實(shí)驗(yàn)人劉杰一、實(shí)驗(yàn)?zāi)康摹⒁?guī)定與環(huán)境一、實(shí)驗(yàn)?zāi)康脑搶?shí)驗(yàn)通過(guò)訪問(wèn)Internet搜索有關(guān)介紹網(wǎng)卡、集線器、交換機(jī)、路由器、多個(gè)傳輸媒體的類型、功效、特點(diǎn)和價(jià)格等,理解計(jì)算機(jī)網(wǎng)絡(luò)的基本構(gòu)造,掌握各網(wǎng)絡(luò)部件在計(jì)算機(jī)網(wǎng)絡(luò)中的作用。二、實(shí)驗(yàn)環(huán)境已安裝好的WINProfessical(Server、NT)操作系統(tǒng),并可訪問(wèn)因特網(wǎng)。二、實(shí)驗(yàn)環(huán)節(jié)在IE地址欄中輸入www.谷歌.com或www.百度.com等搜索引擎網(wǎng)址;上網(wǎng)查詢網(wǎng)絡(luò)適配器的類型、功效、特點(diǎn)和價(jià)格;上網(wǎng)查詢集線器(Hub)的類型、功效、特點(diǎn)和價(jià)格;上網(wǎng)查詢交換機(jī)(Switch)的類型、功效、特點(diǎn)和價(jià)格;上網(wǎng)查詢路由器(Router)的類型、功效、特點(diǎn)和價(jià)格;上網(wǎng)查詢多個(gè)傳輸媒體的類型、功效、特點(diǎn)和價(jià)格;分析各網(wǎng)絡(luò)部件在計(jì)算機(jī)網(wǎng)絡(luò)中的作用。三、實(shí)驗(yàn)成果1、網(wǎng)絡(luò)適配器網(wǎng)卡是工作在鏈路層的網(wǎng)絡(luò)組件,是局域網(wǎng)中連接計(jì)算機(jī)和傳輸介質(zhì)的接口,不僅能實(shí)現(xiàn)與局域網(wǎng)傳輸介質(zhì)之間的物理連接和電信號(hào)匹配,還涉及幀的發(fā)送與接受、幀的封裝與拆封、介質(zhì)訪問(wèn)控制、數(shù)據(jù)的編碼與解碼以及數(shù)據(jù)緩存的功效等。類型:1、按照網(wǎng)卡支持的計(jì)算機(jī)種類分類,重要分為原則以太網(wǎng)卡和PCMCIA網(wǎng)卡:原則以太網(wǎng)卡用于臺(tái)式計(jì)算機(jī)聯(lián)網(wǎng),而PCMCIA網(wǎng)卡用于筆記本電腦。2、按照網(wǎng)卡支持的傳輸速率分類,重要分為10Mbps網(wǎng)卡、100Mbps網(wǎng)卡、10/100Mbps自適應(yīng)網(wǎng)卡和1000Mbps網(wǎng)卡四類:根據(jù)傳輸速率的規(guī)定,10Mbps和100Mbps網(wǎng)卡僅支持10Mbps和100Mbps的傳輸速率,在使用非屏蔽雙絞線UTP作為傳輸介質(zhì)時(shí),普通10Mbps網(wǎng)卡與3類UTP配合使用,而100Mbps網(wǎng)卡與5類UTP相連接。10/100Mbps自適應(yīng)網(wǎng)卡是由網(wǎng)卡自動(dòng)檢測(cè)網(wǎng)絡(luò)的傳輸速率,確保網(wǎng)絡(luò)中兩種不同傳輸速率的兼容性。隨著局域網(wǎng)傳輸速率的不停提高,1000Mbps網(wǎng)卡大多被應(yīng)用于高速的服務(wù)器中。3、按網(wǎng)卡所支持的總線類型分類,重要能夠分為ISA、EISA、PCI等功效:特點(diǎn):一塊網(wǎng)卡涉及OSI模型的兩個(gè)層——物理層和數(shù)據(jù)鏈路層。物理層定義了數(shù)據(jù)傳送與接受所需要的電與光信號(hào)、線路狀態(tài)、時(shí)鐘基準(zhǔn)、數(shù)據(jù)編碼和電路等,并向數(shù)據(jù)鏈路層設(shè)備提供原則接口。數(shù)據(jù)鏈路層則提供尋址機(jī)構(gòu)、數(shù)據(jù)幀的構(gòu)建、數(shù)據(jù)差錯(cuò)檢查、傳送控制、向網(wǎng)絡(luò)層提供原則的數(shù)據(jù)接口等功效。價(jià)格:快速以太網(wǎng)普遍在100元以內(nèi)千兆以太網(wǎng)普遍在幾百元到幾千元不等萬(wàn)兆以太網(wǎng)普遍在幾千元到上萬(wàn)元不等集線器HUB是一種多端口的轉(zhuǎn)發(fā)器,當(dāng)以HUB為中心設(shè)備時(shí),網(wǎng)絡(luò)中某條線路產(chǎn)生了故障,并不影響其它線路的工作。因此HUB在局域網(wǎng)中得到了廣泛的應(yīng)用。大多數(shù)的時(shí)候它用在星型與樹(shù)型網(wǎng)絡(luò)拓?fù)錁?gòu)造中,以RJ45接口與各主機(jī)相連(也有BNC接口),HUB按照不同的說(shuō)法有諸多個(gè)類。類型:HUB按照對(duì)輸入信號(hào)的解決方式上,能夠分為無(wú)源HUB、有源HUB、智能HUB和其它HUB。按構(gòu)造和功效分類,集線器可分為未管理的集線器、堆疊式集線器和底盤(pán)集線器三類。功效:根據(jù)IEEE802.2合同,集線器功效是隨機(jī)選出某一端口的設(shè)備,并讓它獨(dú)占全部帶寬,與集線器的上聯(lián)設(shè)備(交換機(jī)、路由器或服務(wù)器等)進(jìn)行通信。特點(diǎn):集線器(HUB)屬于數(shù)據(jù)通信系統(tǒng)中的基礎(chǔ)設(shè)備,含有流量監(jiān)控功效。它和雙絞線等傳輸介質(zhì)同樣,是一種不需任何軟件支持或只需極少管理軟件管理的硬件設(shè)備。Hub只是一種多端口的信號(hào)放大設(shè)備,工作中當(dāng)一種端口接受到數(shù)據(jù)信號(hào)時(shí),由于信號(hào)在從源端口到Hub的傳輸過(guò)程中已有了衰減,因此Hub便將該信號(hào)進(jìn)行整形放大,使被衰減的信號(hào)再生(恢復(fù))到發(fā)送時(shí)的狀態(tài),緊接著轉(zhuǎn)發(fā)到其它全部處在工作狀態(tài)的端口上。從Hub的工作方式能夠看出,它在網(wǎng)絡(luò)中只起到信號(hào)放大和重發(fā)作用,其目的是擴(kuò)大網(wǎng)絡(luò)的傳輸范疇,而不含有信號(hào)的定向傳送能力,是—個(gè)原則的共享式設(shè)備。因此有人稱集線器為“傻Hub”或“啞Hub”。另首先是Hub只與它的上聯(lián)設(shè)備(如上層Hub、交換機(jī)或服務(wù)器)進(jìn)行通信,同層的各端口之間不會(huì)直接進(jìn)行通信,而是通過(guò)上聯(lián)設(shè)備再將信息廣播到全部端口上。價(jià)格:普遍在幾十元到幾百元不等,也有上千元的交換機(jī)類型:從廣義上來(lái)看,網(wǎng)絡(luò)交換機(jī)分為兩種:廣域網(wǎng)交換機(jī)和局域網(wǎng)交換機(jī)。廣域網(wǎng)交換機(jī)重要應(yīng)用于電信領(lǐng)域,提供通信用的基礎(chǔ)平臺(tái)。而局域網(wǎng)交換機(jī)則應(yīng)用于局域網(wǎng)絡(luò),用于連接終端設(shè)備,如PC機(jī)及網(wǎng)絡(luò)打印機(jī)等。從傳輸介質(zhì)和傳輸速度上可分為以太網(wǎng)交換機(jī)、快速以太網(wǎng)交換機(jī)、千兆以太網(wǎng)交換機(jī)、FDDI交換機(jī)、ATM交換機(jī)和令牌環(huán)交換機(jī)等。從規(guī)模應(yīng)用上又可分為公司級(jí)交換機(jī)、部門(mén)級(jí)交換機(jī)和工作組交換機(jī)等。各廠商劃分的尺度并不是完全一致的,普通來(lái)講,公司級(jí)交換機(jī)都是機(jī)架式,部門(mén)級(jí)交換機(jī)能夠是機(jī)架式(插槽數(shù)較少),也能夠是固定配備式,而工作組級(jí)交換機(jī)為固定配備式(功效較為簡(jiǎn)樸)。另首先,從應(yīng)用的規(guī)模來(lái)看,作為骨干交換機(jī)時(shí),支持500個(gè)信息點(diǎn)以上大型公司應(yīng)用的交換機(jī)為公司級(jí)交換機(jī),支持300個(gè)信息點(diǎn)下列中型公司的交換機(jī)為部門(mén)級(jí)交換機(jī),而支持100個(gè)信息點(diǎn)以內(nèi)的交換機(jī)為工作組級(jí)交換機(jī)。本文所介紹的交換機(jī)指的是局域網(wǎng)交換機(jī)。功效:交換機(jī)的重要功效涉及物理編址、網(wǎng)絡(luò)拓?fù)錁?gòu)造、錯(cuò)誤校驗(yàn)、幀序列以及流控。交換機(jī)還含有了某些新的功效,如對(duì)VLAN(虛擬局域網(wǎng))的支持、對(duì)鏈路匯聚的支持,甚至有的還含有防火墻的功效。特點(diǎn):二層交換和三層互通實(shí)現(xiàn)三層精確匹配查詢專門(mén)針對(duì)局域網(wǎng),特別是以太網(wǎng)進(jìn)行了優(yōu)化引入了某些在二層交換機(jī)和三層路由器上都不存在的特性實(shí)現(xiàn)了初步的BAS功效價(jià)格:普遍在幾千元到上萬(wàn)元路由器(Router)類型:1、按性能檔次分為高、中、低檔路由器。2、從構(gòu)造上分為模塊化路由器和非模塊化路由器3、從功效上劃分,可將路由器分為骨干級(jí)路由器、公司級(jí)路由器和接入級(jí)路由器。4、按所處網(wǎng)絡(luò)位置劃分普通把路由器劃分為邊界路由器和中間節(jié)點(diǎn)路由器。5、從性能上可分線速路由以及非線速路由器功效:1、連通不同的網(wǎng)絡(luò)從過(guò)濾網(wǎng)絡(luò)流量的角度來(lái)看,路由器的作用與交換機(jī)和網(wǎng)橋非常相似路由器。但是與工作在網(wǎng)絡(luò)物理層,從物理上劃分網(wǎng)段的交換機(jī)不同,路由器使用專門(mén)的軟件合同從邏輯上對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行劃分。例如,一臺(tái)支持IP合同的路由器能夠把網(wǎng)絡(luò)劃分成多個(gè)子網(wǎng)段,只有指向特殊IP地址的網(wǎng)絡(luò)流量才能夠通過(guò)路由器。對(duì)于每一種接受到的數(shù)據(jù)包,路由器都會(huì)重新計(jì)算其校驗(yàn)值,并寫(xiě)入新的物理地址。因此,使用路由器轉(zhuǎn)發(fā)和過(guò)濾數(shù)據(jù)的速度往往要比只查看數(shù)據(jù)包物理地址的交換機(jī)慢。但是,對(duì)于那些構(gòu)造復(fù)雜的網(wǎng)絡(luò),使用路由器能夠提高網(wǎng)絡(luò)的整體效率。路由器的另外一種明顯優(yōu)勢(shì)就是能夠自動(dòng)過(guò)濾網(wǎng)絡(luò)廣播??傮w上說(shuō),在網(wǎng)絡(luò)中添加路由器的整個(gè)安裝過(guò)程要比即插即用的交換機(jī)復(fù)雜諸多。2、信息傳輸有的路由器僅支持單一合同,但大部分路由器能夠支持多個(gè)合同的傳輸,即多合同路由器。由于每一種合同都有自己的規(guī)則,要在一種路由器中完畢多個(gè)合同的算法,勢(shì)必會(huì)減少路由器的性能。路由器的重要工作就是為通過(guò)路由器的每個(gè)數(shù)據(jù)幀尋找一條最佳傳輸途徑,并將該數(shù)據(jù)有效地傳送到目的站點(diǎn)。由此可見(jiàn),選擇最佳途徑的方略即路由算法是路由器的核心所在。為了完畢這項(xiàng)工作,在路由器中保存著多個(gè)傳輸途徑的有關(guān)數(shù)據(jù)--途徑表(RoutingTable),供路由選擇時(shí)使用。途徑表中保存著子網(wǎng)的標(biāo)志信息、網(wǎng)上路由器的個(gè)數(shù)和下一種路由器的名字等內(nèi)容。途徑表能夠是由系統(tǒng)管理員固定設(shè)立好的。靜態(tài)路由表:由系統(tǒng)管理員事先設(shè)立好固定的途徑表稱之為靜態(tài)(static)途徑表。動(dòng)態(tài)路由表:動(dòng)態(tài)(Dynamic)途徑表是路由器根據(jù)網(wǎng)絡(luò)系統(tǒng)的運(yùn)行狀況而自動(dòng)調(diào)節(jié)的途徑表。路由器是一種多端口設(shè)備,它能夠連接不同傳輸速率并運(yùn)行于多個(gè)環(huán)境的局域網(wǎng)和廣域網(wǎng),也能夠采用不同的合同。路由器屬于OSI模型的第三層--網(wǎng)絡(luò)層。指導(dǎo)從一種網(wǎng)段到另一種網(wǎng)段的數(shù)據(jù)傳輸,也能指導(dǎo)從一種網(wǎng)絡(luò)向另一種網(wǎng)絡(luò)的數(shù)據(jù)傳輸。第一,網(wǎng)絡(luò)互連:路由器支持多個(gè)局域網(wǎng)和廣域網(wǎng)接口,重要用于互連局域網(wǎng)和廣域網(wǎng),實(shí)現(xiàn)不同網(wǎng)絡(luò)互相通信;第二,數(shù)據(jù)解決:提供涉及分組過(guò)濾、分組轉(zhuǎn)發(fā)、優(yōu)先級(jí)、復(fù)用、加密、壓縮和防火墻等功效;第三,網(wǎng)絡(luò)管理:路由器提供涉及路由器配備管理、性能管理、容錯(cuò)管理和流量控制等功效。所謂“路由”,是指把數(shù)據(jù)從一種地方傳送到另一種地方的行為和動(dòng)作,而路由器,正是執(zhí)行這種行為動(dòng)作的機(jī)器,它的英文名稱為Router,是一種連接多個(gè)網(wǎng)絡(luò)或網(wǎng)段的網(wǎng)絡(luò)設(shè)備,它能將不同網(wǎng)絡(luò)或網(wǎng)段之間的數(shù)據(jù)信息進(jìn)行“翻譯”,以使它們能夠互相“讀懂”對(duì)方的數(shù)據(jù),從而構(gòu)成一種更大的網(wǎng)絡(luò)。為了完畢“路由”的工作,在路由器中保存著多個(gè)傳輸途徑的有關(guān)數(shù)據(jù)--路由表(RoutingTable),供路由選擇時(shí)使用。路由表中保存著子網(wǎng)的標(biāo)志信息、網(wǎng)上路由器的個(gè)數(shù)和下一種路由器的名字等內(nèi)容。路由表能夠是由系統(tǒng)管理員固定設(shè)立好的,也能夠由系統(tǒng)動(dòng)態(tài)修改,能夠由路由器自動(dòng)調(diào)節(jié),也能夠由主機(jī)控制。在路由器中涉及到兩個(gè)有關(guān)地址的名字概念,那就是:靜態(tài)路由表和動(dòng)態(tài)路由表。由系統(tǒng)管理員事先設(shè)立好固定的路由表稱之為靜態(tài)(static)路由表,普通是在系統(tǒng)安裝時(shí)就根據(jù)網(wǎng)絡(luò)的配備狀況預(yù)先設(shè)定的,它不會(huì)隨將來(lái)網(wǎng)絡(luò)構(gòu)造的變化而變化。動(dòng)態(tài)(Dynamic)路由表是路由器根據(jù)網(wǎng)絡(luò)系統(tǒng)的運(yùn)行狀況而自動(dòng)調(diào)節(jié)的路由表。路由器根據(jù)路由選擇合同(RoutingProtocol)提供的功效,自動(dòng)學(xué)習(xí)和記憶網(wǎng)絡(luò)運(yùn)行狀況,在需要時(shí)自動(dòng)計(jì)算數(shù)據(jù)傳輸?shù)淖罴淹緩健L攸c(diǎn):路由器是一種連接多個(gè)網(wǎng)絡(luò)或網(wǎng)段的網(wǎng)絡(luò)設(shè)備,它能將不同網(wǎng)絡(luò)或網(wǎng)段之間的數(shù)據(jù)信息進(jìn)行“翻譯”,以使它們能夠互相“讀”懂對(duì)方的數(shù)據(jù),從而構(gòu)成一種更大的網(wǎng)絡(luò)。路由器有兩大典型功效,即數(shù)據(jù)通道功效和控制功效。數(shù)據(jù)通道功效涉及轉(zhuǎn)發(fā)決定、背板轉(zhuǎn)發(fā)以及輸出鏈路調(diào)度等,普通由特定的硬件來(lái)完畢;控制功效普通用軟件來(lái)實(shí)現(xiàn),涉及與相鄰路由器之間的信息交換、系統(tǒng)配備、系統(tǒng)管理等。多少年來(lái),路由器的發(fā)展有起有伏。90年代中期,傳統(tǒng)路由器成為制約因特網(wǎng)發(fā)展的瓶頸。ATM交換機(jī)取而代之,成為IP骨干網(wǎng)的核心,路由器變成了配角。進(jìn)入90年代末期,Internet規(guī)模進(jìn)一步擴(kuò)大,流量每六個(gè)月翻一番,ATM網(wǎng)又成為瓶頸,路由器東山再起,Gbps路由交換機(jī)在1997年面世后,人們又開(kāi)始以Gbps路由交換機(jī)取代ATM交換機(jī),架構(gòu)以路由器為核心的骨干網(wǎng)上網(wǎng)查詢多個(gè)傳輸媒體的類型、功效、特點(diǎn)和價(jià)格價(jià)格:從幾十元到幾千元甚至上萬(wàn)5、傳輸媒體類型:它可分為兩大類,即導(dǎo)向傳輸媒體和非導(dǎo)向傳輸媒體。在導(dǎo)向傳輸媒體中,電磁波被導(dǎo)向沿著固體媒體(銅線或光纖)傳輸,而非導(dǎo)向傳輸媒體就是指自由空間,在非導(dǎo)向傳輸媒體中電磁波的傳輸常稱為無(wú)線傳輸。價(jià)格:幾十-幾百不等6、各網(wǎng)絡(luò)部件在計(jì)算機(jī)網(wǎng)絡(luò)中的作用網(wǎng)卡,網(wǎng)卡是工作在數(shù)據(jù)鏈路層的網(wǎng)路組件,是局域網(wǎng)中連接計(jì)算機(jī)和傳輸介質(zhì)的接口,網(wǎng)卡是工作在數(shù)據(jù)鏈路層的網(wǎng)路組件,是局域網(wǎng)中連接計(jì)算機(jī)和傳輸介質(zhì)的接口,不僅能實(shí)現(xiàn)與局域網(wǎng)傳輸介質(zhì)之間的物理連接和電信號(hào)匹配,還涉及幀的發(fā)送與接受、幀的封裝與拆封、介質(zhì)訪問(wèn)控制、數(shù)據(jù)的編碼與解碼以及數(shù)據(jù)緩存的功效等。HUB,也就是集線器。它的作用能夠簡(jiǎn)樸的理解為將某些機(jī)器連接起來(lái)構(gòu)成一種局域網(wǎng)。交換機(jī)(又名交換式集線器)作用與集線器大致相似。但是兩者在性能上有區(qū)別:集線器采用的式共享帶寬的工作方式,而交換機(jī)是獨(dú)享帶寬。這樣在機(jī)器諸多或數(shù)據(jù)量很大時(shí),兩者將會(huì)有比較明顯的。路由器與以上兩者有明顯區(qū)別,它的作用在于連接不同的網(wǎng)段并且找到網(wǎng)絡(luò)中數(shù)據(jù)傳輸最適宜的途徑,能夠說(shuō)普通狀況下個(gè)人顧客需求不大。路由器是產(chǎn)生于交換機(jī)之后,就像交換機(jī)產(chǎn)生于集線器之后,因此路由器與交換機(jī)也有一定聯(lián)系,并不是完全獨(dú)立的兩種設(shè)備。路由器重要克服了交換機(jī)不能路由轉(zhuǎn)發(fā)數(shù)據(jù)包的局限性?!队?jì)算機(jī)網(wǎng)絡(luò)》實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱Windows環(huán)境下的服務(wù)器配備實(shí)驗(yàn)序號(hào)2實(shí)驗(yàn)日期.5.28實(shí)驗(yàn)人劉杰一、實(shí)驗(yàn)?zāi)康摹⒁?guī)定與環(huán)境一、實(shí)驗(yàn)?zāi)康谋緦?shí)驗(yàn)是為了讓學(xué)生學(xué)習(xí)DHCP(動(dòng)態(tài)主機(jī)配備合同)、DNS(域名服務(wù))、IIS、FTP服務(wù)的有關(guān)知識(shí)。二、實(shí)驗(yàn)環(huán)境1、運(yùn)行WindowsServer的計(jì)算機(jī)并且已經(jīng)安裝了DHCP、DNS、IIS;2、一臺(tái)Win客戶機(jī);3、服務(wù)器和客戶機(jī)之間能夠正常網(wǎng)絡(luò)連接,并能夠正常聯(lián)入Internet。二、實(shí)驗(yàn)環(huán)節(jié)1、配備DHCP能夠自動(dòng)為其它計(jì)算機(jī)分派IP地址和子網(wǎng)掩碼;2、配備DNS服務(wù)器(1)創(chuàng)立正向搜索區(qū)域:正向搜索區(qū)域是將域名轉(zhuǎn)化為IP地址的區(qū)域文獻(xiàn);☆管理工具中打開(kāi)DNS,點(diǎn)擊根目錄右鍵選擇“新建區(qū)域”;☆在區(qū)域名中輸入域名,如:;☆在區(qū)域文獻(xiàn)中輸入文獻(xiàn)名,如:.dns;(2)配備正向搜索區(qū)域?qū)傩?;☆右擊所?chuàng)立的正向搜索區(qū)域名,選擇“屬性”,按需要進(jìn)行設(shè)立;(3)配備DNS正向搜索區(qū)域主機(jī)統(tǒng)計(jì):主機(jī)統(tǒng)計(jì)通過(guò)一種區(qū)域內(nèi)的IP地址與主機(jī)名發(fā)生聯(lián)系;☆右擊正向搜索區(qū)域名,選擇“新建主機(jī)”;☆在對(duì)應(yīng)的對(duì)話框輸入主機(jī)名稱(WWW、jxxx等)、IP地址,單擊添加主機(jī);(4)配備DNS正向搜索區(qū)域別名統(tǒng)計(jì):別名統(tǒng)計(jì)是指向主機(jī)的官方域名的別名,這些統(tǒng)計(jì)能夠允許使用不止一種名稱指向同一種主機(jī);☆右擊正向搜索區(qū)域名,選擇“新建別名”;(5)創(chuàng)立一種反向搜索區(qū)域并設(shè)立屬性:反向搜索區(qū)域是指將IP地址轉(zhuǎn)化為域名的區(qū)域文獻(xiàn);(6)使用DNS名字訪問(wèn)計(jì)算機(jī)。3、配備IIS服務(wù)器(1)配備WWW服務(wù);(2)運(yùn)用對(duì)應(yīng)工具,建立個(gè)人的網(wǎng)站,將個(gè)人網(wǎng)站在Internet上公布;(3)配備FTP服務(wù),同窗之間能夠?qū)崿F(xiàn)文獻(xiàn)傳送功效。三、實(shí)驗(yàn)成果四、實(shí)驗(yàn)總結(jié)Windows服務(wù)配備實(shí)驗(yàn)在實(shí)驗(yàn)當(dāng)中,我學(xué)習(xí)了配備DHCP(動(dòng)態(tài)主機(jī)配備合同)、DNS(域名服務(wù))、IIS、FTP服務(wù),通過(guò)這些服務(wù)的配備和管理操作,我對(duì)于Windows下的這幾個(gè)服務(wù)器的配備有了更加進(jìn)一步的理解,鞏固了我的計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)?!队?jì)算機(jī)網(wǎng)絡(luò)》實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱基本W(wǎng)insock編程實(shí)驗(yàn)序號(hào)3實(shí)驗(yàn)日期.6.4實(shí)驗(yàn)人劉杰一、實(shí)驗(yàn)?zāi)康?、?guī)定與環(huán)境一、實(shí)驗(yàn)?zāi)康?、理解Winsock編程原理;2、熟悉Windows網(wǎng)絡(luò)編程接口;二、實(shí)驗(yàn)環(huán)境VisualStdio二、實(shí)驗(yàn)環(huán)節(jié)編寫(xiě)一種簡(jiǎn)樸的C/S通訊程序。具體規(guī)定:(1)使用WINSOCK通訊:WINSOCK是WindowsSocketsAPI的簡(jiǎn)稱,已經(jīng)成為Windows廣泛應(yīng)用的、開(kāi)放的、支持多個(gè)合同、事實(shí)上的網(wǎng)絡(luò)編程接口原則。(2)客戶方程序與服務(wù)方程序位于兩臺(tái)不同的機(jī)器上,在客戶方通過(guò)指定服務(wù)方的IP地址和端標(biāo)語(yǔ)來(lái)通訊;(3)服務(wù)器程序,始終處在監(jiān)聽(tīng)狀態(tài),含有持續(xù)接受客戶發(fā)送的信息的能力(發(fā)送的信息任意)。三、實(shí)驗(yàn)代碼1、服務(wù)器端代碼usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Collections;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Net;usingSystem.Net.Sockets;//引入Socket的命名空間usingSystem.Threading;//引入線程的命名空間namespaceChatApplicationServer{publicpartialclassfrmServerMain:Form{//clients數(shù)組保存目前在線顧客的client對(duì)象internalstaticHashtableclients=newHashtable();//該服務(wù)器默認(rèn)的監(jiān)聽(tīng)器privateTcpListenerlistener;//默認(rèn)最大支持的客戶端連接數(shù)staticintMAXUSER=100;//服務(wù)器與否啟動(dòng)的標(biāo)志internalstaticboolServerFlag=false;publicfrmServerMain(){InitializeComponent();}publicdelegatevoidAppendMsgEventHandler(RichTextBoxrb,stringmsg);//定義在線程中操作不同線程創(chuàng)立的控件的委托publicdelegatevoidAppendUserEventHandler(ListBoxlb,stringusername);//啟動(dòng)服務(wù)器privatevoidbtStartServer_Click(objectsender,EventArgse){intiPort=this.returnValidPort(tbServerPort.Text.Trim());if(iPort<0){MessageBox.Show("錯(cuò)誤的端口信息!","錯(cuò)誤提示");return;}stringip=this.returnIpAddress();try{IPAddressuserIP=IPAddress.Parse(ip);//創(chuàng)立服務(wù)器套接字listener=newTcpListener(userIP,iPort);listener.Start();this.rbChatContent.AppendText("服務(wù)器已經(jīng)啟動(dòng),正在監(jiān)聽(tīng)"+ip+"端標(biāo)語(yǔ):"+tbServerPort.Text+"..........\n");frmServerMain.ServerFlag=true;//下列辦法啟動(dòng)一種新的線程,執(zhí)行監(jiān)聽(tīng)辦法//方便在一種獨(dú)立的進(jìn)程中執(zhí)行確認(rèn)與客戶端連接的操作Threadthread=newThread(StartListen);thread.Start();btStartServer.Enabled=false;btStopServer.Enabled=true;}catch(Exceptionex){this.rbChatContent.AppendText(ex.Message+"\n");}}//用于接受客戶端的請(qǐng)求,確認(rèn)與客戶端的連接//并且啟動(dòng)一種新的線程解決客戶端的請(qǐng)求privatevoidStartListen(){while(frmServerMain.ServerFlag){try{//當(dāng)接受到客戶端請(qǐng)求時(shí),確認(rèn)與客戶端的連接if(listener.Pending()){SocketnewSocket=listener.AcceptSocket();if(clients.Count>=MAXUSER){MessageBox.Show("連接數(shù)已經(jīng)超出允許連接的最大數(shù)"+MAXUSER.ToString()+",回絕新的連接!","錯(cuò)誤提示");this.rbChatContent.AppendText("連接數(shù)已經(jīng)超出允許連接的最大數(shù)"+MAXUSER.ToString()+",回絕新的連接!");newSocket.Close();}else{//啟動(dòng)一種新的線程,解決顧客對(duì)應(yīng)的請(qǐng)求ChatClientnewClient=newChatClient(this,newSocket);ThreadClientThread=newThread(newClient.ClientService);ClientThread.Start();}}Thread.Sleep(200);}catch(Exceptionex){this.UpdateMsg(ex.Message);}}}//獲取有效的端標(biāo)語(yǔ)privateintreturnValidPort(stringstrPort){intport;//測(cè)試端標(biāo)語(yǔ)與否有效try{if(tbServerPort.Text==""){thrownewArgumentException("端標(biāo)語(yǔ)為空,不能啟動(dòng)服務(wù)器!");}else{port=Convert.ToInt32(tbServerPort.Text.Trim());}}catch(Exceptionex){this.rbChatContent.AppendText("無(wú)效的端標(biāo)語(yǔ):"+ex.Message+"\n");return-1;}returnport;}///<summary>///獲取本機(jī)局域網(wǎng)IP地址///</summary>///<returns></returns>privatestringreturnIpAddress(){IPAddress[]AddressList=Dns.GetHostByName(Dns.GetHostName()).AddressList;if(AddressList.Length<1){return"";}returnAddressList[0].ToString();}///<summary>///獲得撥號(hào)動(dòng)態(tài)分派IP地址///</summary>///<returns></returns>privatestaticstringgetDynamicIPAddress(){IPAddress[]AddressList=Dns.GetHostByName(Dns.GetHostName()).AddressList;if(AddressList.Length<2){return"";}returnAddressList[1].ToString();}///更新顯示信息publicvoidUpdateMsg(stringmsg){Invoke(newAppendMsgEventHandler(AppendMsgEvent),rbChatContent,msg+"\n");}///添加顧客更新界面publicvoidAddUser(stringname){stringstr="【"+name+"】"+"已經(jīng)加入聊天!\n";Invoke(newAppendMsgEventHandler(AppendMsgEvent),rbChatContent,str);//AppendMsgEvent(rbChatContent,"【"+name+"】"+"已經(jīng)加入聊天!\n");//將剛加入的顧客添加進(jìn)顧客列表Invoke(newAppendUserEventHandler(AppendUserEvent),lbOnlineUser,name);this.tslOnlineUserNum.Text=Convert.ToString(clients.Count);}publicvoidAppendMsgEvent(RichTextBoxrb,stringmsg){rb.AppendText(msg);}publicvoidAppendUserEvent(ListBoxlb,stringusername){lb.Items.Add(username);}///獲取顧客列表publicstringGetUserList() { stringuserList=""; for(inti=0;i<lbOnlineUser.Items.Count;i++) {userList=userList+lbOnlineUser.Items[i].ToString()+"|"; }returnuserList; }//移出顧客publicvoidRemoveUser(stringname){this.rbChatContent.AppendText(name+"已經(jīng)離開(kāi)聊天室\n");//將剛連接的顧客名加入到目前在線顧客列表中this.lbOnlineUser.Items.Remove(name);this.tslOnlineUserNum.Text=System.Convert.ToString(clients.Count);}//停止服務(wù)器privatevoidbtStopServer_Click(objectsender,EventArgse){frmServerMain.ServerFlag=false;btStartServer.Enabled=true;btStopServer.Enabled=false;UpdateMsg("服務(wù)器已經(jīng)停止監(jiān)聽(tīng).\n");}//關(guān)閉窗體privatevoidfrmServerMain_FormClosing(objectsender,FormClosingEventArgse){frmServerMain.ServerFlag=false;}privatevoidtbServerPort_TextChanged(objectsender,EventArgse){this.btStartServer.Enabled=(this.tbServerPort.Text!="");}privatevoidfrmServerMain_Load(objectsender,EventArgse){}}publicclassChatClient{privatestringname;privateSocketcurrentSocket=null;privatestringipAddress;privatefrmServerMainserver;//保存目前連接的狀態(tài)//CLOSED-->CONNECTED-->CLOSEDstringconnState="closed";publicChatClient(frmServerMainserver,SocketcurrentSocket){this.server=server;this.currentSocket=currentSocket;}publicstringName{get{returnname;}set{name=value;}}publicSocketCurrentSocket{get{returncurrentSocket;}set{currentSocket=value;}}publicstringIpAddress{get{returnipAddress;}}//獲取遠(yuǎn)程IP地址privatestringgetRemoteIp(){return((IPEndPoint)currentSocket.RemoteEndPoint).Address.ToString();}//和客戶端進(jìn)行數(shù)據(jù)通信,涉及接受客戶端的請(qǐng)求//根據(jù)不同的請(qǐng)求命令,執(zhí)行對(duì)應(yīng)的操作,并將操作成果返回給客戶端publicvoidClientService(){string[]acceptStr=null;//保存消息字符byte[]buff=newbyte[1024];//緩沖區(qū)boolkeepConnected=true;//用循環(huán)不停地與客戶端進(jìn)行交互,直到其發(fā)出EXIT或者QUIT命令//將keepConnected設(shè)立為false,退出循環(huán),關(guān)閉目前連接,中斷目前線程while(keepConnected&&frmServerMain.ServerFlag){acceptStr=null;try{if(currentSocket==null||currentSocket.Available<1){Thread.Sleep(300);continue;}//接受信息存入buff數(shù)組中intlength=currentSocket.Receive(buff);//將字符數(shù)組轉(zhuǎn)換為字符串stringCommand=Encoding.Default.GetString(buff,0,length);//對(duì)字符串按分隔符拆分acceptStr=Command.Split(newchar[]{'|'});if(acceptStr==null){Thread.Sleep(200);continue;}}catch(Exceptionex){server.UpdateMsg("程序發(fā)生異常,異常信息:"+ex.Message);}if(acceptStr[0]=="CONNECT"){//如果為CONECT,則它的命令格式為“CONNECT|發(fā)送者的顧客名:附件信息”//則acceptStr[1]保存的就是顧客名=acceptStr[1];if(frmServerMain.clients.Contains()){SendToClient(this,"ERORR|User"++"已經(jīng)存在!");}else{HashtablesynClients=Hashtable.Synchronized(frmServerMain.clients);synClients.Add(,this);//更新界面server.AddUser();//對(duì)每一種在線顧客發(fā)送JOIN和LIST消息命令更新顧客列表IEnumeratormyIEnumerator=frmServerMain.clients.Values.GetEnumerator();while(myIEnumerator.MoveNext()){ChatClientcClient=(ChatClient)myIEnumerator.Current;SendToClient(cClient,"JOIN|"++"|");Thread.Sleep(100);}//更新連接狀態(tài)connState="connected";SendToClient(this,"OK");//向客戶端發(fā)送LIST命令更新顧客列表stringmsgUsers="LIST|"+server.GetUserList();SendToClient(this,msgUsers);}}elseif(acceptStr[0]=="LIST"){if(connState=="CONNECTED"){//向客戶端發(fā)送LIST命令,以此更新客戶端的目前在線顧客列表stringmsgUsers="LIST|"+server.GetUserList();SendToClient(this,msgUsers);}else{SendToClient(this,"ERROR|服務(wù)器未連接,請(qǐng)重新登錄");}}elseif(acceptStr[0]=="CHAT"){if(connState=="connected"){//此時(shí)接受到的命令的格式為://命令標(biāo)志符(CHAT)|發(fā)送者的顧客名:發(fā)送內(nèi)容|//向全部目前在線的顧客轉(zhuǎn)發(fā)此信息IEnumeratormyEnumerator=frmServerMain.clients.Values.GetEnumerator();while(myEnumerator.MoveNext()){ChatClientclient=(ChatClient)myEnumerator.Current;//將“發(fā)送者的顧客名:發(fā)送內(nèi)容”轉(zhuǎn)發(fā)給顧客SendToClient(client,acceptStr[1]);}server.UpdateMsg(acceptStr[1]);}else{//發(fā)送錯(cuò)誤信息SendToClient(this,"ERR|服務(wù)器未連接,請(qǐng)重新登錄");}}elseif(acceptStr[0]=="PRIV"){if(connState=="connected"){//此時(shí)接受到的命令格式為://命令標(biāo)志符(PRIV)|發(fā)送者顧客名|接受者顧客名|發(fā)送內(nèi)容|//acceptStr[1]中保存了發(fā)送者的顧客名stringsender=acceptStr[1];//acceptStr[2]中保存了接受者的顧客名stringreceiver=acceptStr[2];//acceptStr[3]中保存了發(fā)送的內(nèi)容stringcontent=acceptStr[3];stringmessage=sender+"--->"+receiver+":"+content;//僅將信息轉(zhuǎn)發(fā)給發(fā)送者和接受者if(frmServerMain.clients.Contains(sender)){SendToClient((ChatClient)frmServerMain.clients[sender],message);}if(frmServerMain.clients.Contains(receiver)){SendToClient((ChatClient)frmServerMain.clients[receiver],message);}server.UpdateMsg(message);}else{//發(fā)送錯(cuò)誤信息SendToClient(this,"ERROR|服務(wù)器未連接,請(qǐng)重新登錄");}}elseif(acceptStr[0]=="EXIT"){//此時(shí)接受到的命令的格式為:命令標(biāo)志符(EXIT)|發(fā)送者的顧客名//向全部目前在線的顧客發(fā)送該顧客已離開(kāi)的信息if(frmServerMain.clients.Contains(acceptStr[1])){ChatClientclient=(ChatClient)frmServerMain.clients[acceptStr[1]];//將該顧客對(duì)應(yīng)的Client對(duì)象從clients中刪除HashtablesyncClients=Hashtable.Synchronized(frmServerMain.clients);syncClients.Remove();server.RemoveUser();//向客戶端發(fā)送QUIT命令stringmessage="QUIT|"+acceptStr[1];System.Collections.IEnumeratormyEnumerator=frmServerMain.clients.Values.GetEnumerator();while(myEnumerator.MoveNext()){ChatClientnewClient=(ChatClient)myEnumerator.Current;SendToClient(newClient,message);}server.UpdateMsg("QUIT");}//退出目前線程break;}Thread.Sleep(200);}}//回發(fā)消息給客戶端privatevoidSendToClient(ChatClientclient,stringmsg){Byte[]message=System.Text.Encoding.Default.GetBytes(msg.ToCharArray());client.CurrentSocket.Send(message,message.Length,0);}}}2、客戶端代碼usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;//引入Sockets和線程的命名空間usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Threading;namespaceChatApplication{publicpartialclassfrmClientMain:Form{//與服務(wù)器的連接privateTcpClienttcpClient;//與服務(wù)器交流的流通道privateNetworkStreamnsStream;//客戶端的2種狀態(tài)privatestaticstringCLOSED="closed";privatestaticstringCONNECTED="connected";privatestringclientState=CLOSED;privateboolStopFlag;publicfrmClientMain(){InitializeComponent();}//連接聊天室服務(wù)器privatevoidbtLogin_Click(objectsender,EventArgse){if(clientState==CONNECTED){return;}if(this.tbUserName.Text.Length==0){MessageBox.Show("請(qǐng)輸入您的顧客名!","操作提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);this.tbUserName.Focus();return;}try{//創(chuàng)立一種客戶端套接字,它是Login的一種公共屬性,//將被傳遞給frmClientMain窗體tcpClient=newTcpClient();//向指定的IP地址的服務(wù)器發(fā)出連接請(qǐng)求tcpClient.Connect(IPAddress.Parse(tbServer.Text),Int32.Parse(tbServerPort.Text));//獲得與服務(wù)器數(shù)據(jù)交互的流通道(NetworkStream)nsStream=tcpClient.GetStream();//啟動(dòng)一種新的線程,執(zhí)行辦法this.ServerResponse(),//方便來(lái)響應(yīng)從服務(wù)器發(fā)回的信息Threadnewthread=newThread(newThreadStart(this.ServerResponse));newthread.Start();//向服務(wù)器發(fā)送“CONNECT”請(qǐng)求命令,//此命令的格式與服務(wù)器端的定義的格式一致,//命令格式為:命令標(biāo)志符(CONNECT)|發(fā)送者的顧客名|stringcmd="CONNECT|"+this.tbUserName.Text+"|";//將字符串轉(zhuǎn)化為字符數(shù)組Byte[]bytes=System.Text.Encoding.Default.GetBytes(cmd.ToCharArray());nsStream.Write(bytes,0,bytes.Length);}catch(Exceptionex){MessageBox.Show(ex.Message);}}//用于接受從服務(wù)器發(fā)回的信息,//根據(jù)不同的命令,執(zhí)行對(duì)應(yīng)的操作privatevoidServerResponse(){ListBox.CheckForIllegalCrossThreadCalls=false;//定義一種byte數(shù)組,用于接受從服務(wù)器端發(fā)送來(lái)的數(shù)據(jù),//每次所能接受的數(shù)據(jù)包的最大長(zhǎng)度為1024個(gè)字節(jié)byte[]buff=newbyte[1024];stringmsg;intlen;try{if(!nsStream.CanRead){return;}StopFlag=false;while(!StopFlag){//從流中得到數(shù)據(jù),并存入到buff字符數(shù)組中l(wèi)en=nsStream.Read(buff,0,buff.Length);if(len<1){Thread.Sleep(200);continue;}//將字符數(shù)組轉(zhuǎn)化為字符串msg=System.Text.Encoding.Default.GetString(buff,0,len);msg.Trim();string[]acceptFromServer=msg.Split(newChar[]{'|'});//acceptFromServer[0]中保存了命令標(biāo)志符(LIST或JOIN或QUIT)if(acceptFromServer[0].ToUpper()=="OK"){//解決響應(yīng)Invoke(newaddHandler(add),rbChatContent,"命令執(zhí)行成功");}elseif(acceptFromServer[0].ToUpper()=="ERROR"){//命令執(zhí)行錯(cuò)誤Invoke(newaddHandler(add),rbChatContent,"命令執(zhí)行錯(cuò)誤:"+acceptFromServer[1]);}elseif(acceptFromServer[0]=="LIST"){//此時(shí)從服務(wù)器返回的消息格式://命令標(biāo)志符(LIST)|顧客名1|顧客名|2...(全部在線顧客名)|Invoke(newaddHandler(add),rbChatContent,"獲得顧客列表");//add("獲得顧客列表");//更新在線顧客列表lbUserList.Items.Clear();for(inti=1;i<acceptFromServer.Length-1;i++){lbUserList.Items.Add(acceptFromServer[i].Trim());}}elseif(acceptFromServer[0]=="JOIN"){//此時(shí)從服務(wù)器返回的消息格式://命令標(biāo)志符(JOIN)|剛剛登入的顧客名|Invoke(newaddHandler(add),rbChatContent,acceptFromServer[1]+""+"已經(jīng)進(jìn)入了聊天室");this.lbUserList.Items.Add(acceptFromServer[1]);if(this.tbUserName.Text==acceptFromServer[1]){this.clientState=CONNECTED;}}elseif(acceptFromServer[0]=="QUIT"){if(this.lbUserList.Items.IndexOf(acceptFromServer[1])>-1){this.lbUserList.Items.Remove(acceptFromServer[1]);}Invoke(newaddHandler(add),rbChatContent,"顧客:"+acceptFromServer[1]+"離開(kāi)聊天室");}else{//如果從服務(wù)器返回的其它消息格式,//則在ListBox控件中直接顯示Invoke(newaddHandler(add),rbChatContent,msg);}}//關(guān)閉連接tcpClient.Close();}catch{}
溫馨提示
- 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年中國(guó)旅居康養(yǎng)行業(yè)全國(guó)市場(chǎng)開(kāi)拓戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)小家電行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)壓鑄行業(yè)營(yíng)銷(xiāo)創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)汽車(chē)經(jīng)銷(xiāo)行業(yè)并購(gòu)重組擴(kuò)張戰(zhàn)略制定與實(shí)施研究報(bào)告
- 網(wǎng)絡(luò)工程師工作總結(jié)5篇
- 建設(shè)項(xiàng)目環(huán)境設(shè)施竣工驗(yàn)收指南
- 面向智能網(wǎng)聯(lián)汽車(chē)的成熟駕駛模型白皮書(shū) 202311
- 家政培訓(xùn)師知識(shí)點(diǎn)課件
- 2023-2029年中國(guó)鐵路后行業(yè)發(fā)展監(jiān)測(cè)及市場(chǎng)發(fā)展?jié)摿︻A(yù)測(cè)報(bào)告
- 冷鏈物流園及配套基礎(chǔ)設(shè)施建設(shè)項(xiàng)目資金申請(qǐng)報(bào)告
- 河北省石家莊市2023-2024學(xué)年高二上學(xué)期期末考試 語(yǔ)文 Word版含答案
- 觸電與應(yīng)急知識(shí)培訓(xùn)總結(jié)
- 代理記賬機(jī)構(gòu)自查報(bào)告范文
- 項(xiàng)目貸款保證函書(shū)
- 新版標(biāo)準(zhǔn)日本語(yǔ)(初級(jí))上下冊(cè)單詞默寫(xiě)表
- 面向5G網(wǎng)絡(luò)建設(shè)的站點(diǎn)供電技術(shù)應(yīng)用與發(fā)展
- 普通語(yǔ)文課程標(biāo)準(zhǔn)(2023年核心素養(yǎng)版)
- 洗滌劑常用原料
- 曼陀羅中毒課件
- (新版)焊工(初級(jí))理論知識(shí)考試200題及答案
- 滿堂腳手架計(jì)算書(shū)
評(píng)論
0/150
提交評(píng)論