版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 計(jì)算機(jī)網(wǎng)絡(luò) 實(shí) 驗(yàn) 報(bào) 告 學(xué)生姓名 學(xué) 號(hào) 09091219 專(zhuān)業(yè)班級(jí) 計(jì)科12 指導(dǎo)教師 學(xué) 院 信息科學(xué)與工程學(xué)院 完成時(shí)間 2014年5月實(shí)驗(yàn)一 網(wǎng)絡(luò)路由層協(xié)議模擬實(shí)驗(yàn) 【實(shí)驗(yàn)?zāi)康暮鸵蟆?. 掌握VB、VC+、VS或JAVA等集成開(kāi)發(fā)環(huán)境編寫(xiě)路由仿真程序的方法;2. 理解并掌握距離向量路由協(xié)議和鏈路狀態(tài)路由協(xié)議的工作原理?!緦?shí)驗(yàn)內(nèi)容】 模擬距離向量路由算法的路由表交換過(guò)程,演示每輪交換后路由表的變化?;疽螅▌?dòng)態(tài)生成網(wǎng)絡(luò)拓?fù)鋱D,節(jié)點(diǎn)間的距離隨機(jī)生成。從初始路由表開(kāi)始,進(jìn)行交換路由表,演示每輪交換后的路由表的變化。觀察和討論多少輪交換后路由表穩(wěn)定)【實(shí)驗(yàn)原理】 距離矢量路由算法”的
2、基本思想如下:每個(gè)路由器維護(hù)一個(gè)距離矢量(通常是以延時(shí)是作變量的)表,然后通過(guò)相鄰路由器之間的距離矢量通告進(jìn)行距離矢量表的更新。每個(gè)距離矢量表項(xiàng)包括兩部分:到達(dá)目的結(jié)點(diǎn)的最佳輸出線路,和到達(dá)目的結(jié)點(diǎn)所需時(shí)間或距離,通信子網(wǎng)中的其它每個(gè)路由器在表中占據(jù)一個(gè)表項(xiàng),并作為該表項(xiàng)的索引。每隔一段時(shí)間,路由器會(huì)向所有鄰居結(jié)點(diǎn)發(fā)送它到每個(gè)目的結(jié)點(diǎn)的距離表,同時(shí)它也接收每個(gè)鄰居結(jié)點(diǎn)發(fā)來(lái)的距離表。這樣以此類(lèi)推,經(jīng)過(guò)一段時(shí)間后便可將網(wǎng)絡(luò)中各路由器所獲得的距離矢量信息在各路由器上統(tǒng)一起來(lái),這樣各路由器只需要查看這個(gè)距離矢量表就可以為不同來(lái)源分組找到一條最佳的路由?!揪幊陶Z(yǔ)言和環(huán)境】1. Windows操作系統(tǒng),編
3、程語(yǔ)言C+2. 編程環(huán)境VC【實(shí)驗(yàn)具體設(shè)計(jì)實(shí)現(xiàn)及結(jié)果(含流程圖及關(guān)鍵代碼說(shuō)明)】采用網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)CDAGEFB93524581源代碼:#include stdio.h#include stdlib.h#include conio.h /atoi的頭文件#define ROUTNUM 7 /定義路由的個(gè)數(shù)為7個(gè)typedef structint dis; /存延遲大小int from; /存下一跳的路由RoutNode;RoutNode dataROUTNUMROUTNUM;/*路由表,能存7行7列數(shù)據(jù),數(shù)據(jù)為權(quán)值*/void InitData(FILE* pfile);/*從數(shù)據(jù)文件讀取數(shù)據(jù),
4、初始化路由表*/void OutputRoutData();/*輸出所有的路由表*/void Communication(int recv, int send);/*send點(diǎn)向recv點(diǎn)發(fā)送自己的路由表*/void Exchange();/*所有節(jié)點(diǎn)進(jìn)行一次數(shù)據(jù)交換, 更新路由表*/void main()int start, end, i, j;FILE *pfile;pfile = fopen(1.txt, r);if (pfile = NULL)printf(文件打開(kāi)錯(cuò)誤,按任意鍵退出.n);getch();return;elseprintf(n路由表初始:n);InitData(pfi
5、le);fclose(pfile);for (i = 0; iROUTNUM; i+)printf(%c|, i + 65);for (j = 0; j 0)printf( , j + 65, dataij.dis);printf(n); /顯示各路由的路由表 for (i = 0; i ROUTNUM; i+) /循環(huán)7次(好像多余,改成一次得到同樣結(jié)果)Exchange(); printf(n路由表交換:n);OutputRoutData();printf(輸入起始路由節(jié)點(diǎn)數(shù)字(%d-%d)0代表A,1代表B. : , 0, ROUTNUM - 1);scanf(%d, &start);p
6、rintf(輸入終點(diǎn)路由節(jié)點(diǎn)數(shù)字(%d-%d)0代表A,1代表B. : , 0, ROUTNUM - 1);scanf(%d, &end);if (start = end | start 6 | end 6)printf(n輸入錯(cuò)誤,請(qǐng)按任意鍵退出n);getch();return;elseint cur = start;int total = 0;if (datastartend.dis , cur + 65);while (datacurend.from = 0) /起始點(diǎn)與終點(diǎn)不相連。0是Atotal += datacurdatacurend.from.dis; /total變成cur與
7、下一跳的延遲printf(%c-, datacurend.from + 65);cur = datacurend.from; /起始路由變成下一跳 total += datacurend.dis;printf(%cn總的路由距離 = %d, end + 65, total);getch();return; void InitData(FILE *pfile)char num10;int i = 0;char c;int m, n;fseek(pfile, 0, 0); /文件指針從距0位置0距離開(kāi)始讀取for (m = 0; !feof(pfile) & m 7; m+) /feof(pfil
8、e),文件尾返回1,不是返回0.即不是文件尾部且m7循環(huán).for (n = 0; !feof(pfile) & n = 0 & c = 9) | c = -) /*如果讀到數(shù)字或符號(hào).本題路由權(quán)值只能0到9*/numi+ = c; /*end of else if*/ /*end of while*/ /*end of for (n = 0*/ /*end of for (m = 0*/void OutputRoutData()int i, j;printf( );for (i = 0; i ROUTNUM; i+)printf( %c , i + 65);printf(n);for (i =
9、 0; i ROUTNUM; i+)printf(%c , i + 65);for (j = 0; j ROUTNUM; j+)if (dataij.dis =10)printf( %d, dataij.dis);elseprintf( %d, dataij.dis);if (dataij.from 0)/如果未經(jīng)過(guò)其它節(jié)點(diǎn) 所以直接相連的路由下一跳為-1printf( - );elseprintf( %c , dataij.from + 65); /輸出下一跳路由 printf(n); void Communication(int recv, int send) /相連的兩路由recv和se
10、nd交換數(shù)據(jù)計(jì)算一次得到暫時(shí)最短距離int i;for (i = 0; i 0)/如果send節(jié)點(diǎn)到i號(hào)節(jié)點(diǎn)有路線if (datarecvi.dis datasendi.dis + datarecvsend.dis)/第二種recv與i相連,且直接相連值大于間接到i的延遲/如果現(xiàn)有路徑比新路徑遠(yuǎn)datarecvi.dis = datasendi.dis + datarecvsend.dis; /將recv到i的延遲改為間接延遲的值datarecvi.from = send; /下一跳改為send void Exchange() /實(shí)現(xiàn)所有相連的兩路由進(jìn)行數(shù)據(jù)交換并計(jì)算最短數(shù)值int i, j;
11、for (i = 0; i ROUTNUM; i+)for (j = 0; j 0)/如果兩個(gè)節(jié)點(diǎn)之間有路徑Communication(j, i);/將i號(hào)節(jié)點(diǎn)的路由表發(fā)送給j號(hào)節(jié)點(diǎn) /*1.text中存者路由信息0, 2,-1,-1, 8,-1, 5,2, 0,4, 5,-1,-1,-1,-1,4, 0,-1,-1, 9,-1,-1, 5,-1, 0,1,-1,-1,8,-1,-1,1, 0,-1, 7,-1,-1, 9,-1,-1, 0, 3,5,-1,-1,-1, 7, 3, 0,數(shù)值代表權(quán)值(如延遲大?。?代表目的網(wǎng)絡(luò)到其本身-1代表無(wú)法直接相連 */【實(shí)驗(yàn)總結(jié)】 通過(guò)做模擬距離向量路
12、由算法的路由表交換過(guò)程,使我更加深刻的了解了網(wǎng)絡(luò)路由層的協(xié)議。距離矢量路由算法簡(jiǎn)單來(lái)說(shuō)就是每個(gè)路由器維護(hù)一張表,表中給出了到每個(gè)目的路由器的已知最短“距離”和相應(yīng)輸出線路,并通過(guò)與相鄰路由器交換距離信息來(lái)更新表由運(yùn)行結(jié)果可知實(shí)驗(yàn)結(jié)果正確。起始點(diǎn)D下一跳為E到達(dá)G。其最短的距離為8.多次驗(yàn)證均正確。本實(shí)驗(yàn)的路由表由一個(gè)而為數(shù)組結(jié)構(gòu)體實(shí)現(xiàn),數(shù)組名代表兩個(gè)相關(guān)路由,結(jié)構(gòu)體中存放延時(shí)和下一跳。 路由表初始信息從文件讀取,根據(jù)距離向量路由算法系統(tǒng)自動(dòng)完成路由表的更新操作,最后任意輸入兩個(gè)路由表接點(diǎn),則可得出兩接點(diǎn)之間的最短路徑。 距離矢量路由算法在理論中可以工作,但在實(shí)踐中有一個(gè)嚴(yán)重的缺陷:雖然它總是能
13、夠達(dá)到正確的答案,但是它收斂到正確答案的速度非常慢,尤其是,它對(duì)于好消息的反應(yīng)非常快,但是對(duì)于壞消息的反應(yīng)非常遲緩。實(shí)驗(yàn)二Socket通信實(shí)驗(yàn)【實(shí)驗(yàn)?zāi)康暮鸵蟆?. 掌握VB、VC+、VS或JAVA等集成開(kāi)發(fā)環(huán)境編寫(xiě)網(wǎng)絡(luò)程序的方法;4. 掌握客戶/服務(wù)器(C/S)應(yīng)用的工作方式;5. 學(xué)習(xí)網(wǎng)絡(luò)中進(jìn)程之間通信的原理和實(shí)現(xiàn)方法;6. 理解單播、組播和廣播的原理并比較其不同之處;7. 要求本機(jī)既是客戶端又是服務(wù)器端;【實(shí)驗(yàn)內(nèi)容】所編寫(xiě)的程序應(yīng)具有如下功能:1. 具有點(diǎn)對(duì)點(diǎn)通信功能,任意客戶端之間能夠發(fā)送消息;2. 具有群組通信功能,客戶端能夠向組內(nèi)成員同時(shí)發(fā)送消息,其他組成員不能收到;3. 具有廣播
14、功能,客戶端能夠向所有其他成員廣播消息;【實(shí)驗(yàn)原理】實(shí)驗(yàn)原理:Socket即為網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個(gè)雙向鏈路的一段成為一個(gè)socket。Socket通常用來(lái)實(shí)現(xiàn)客戶端和服務(wù)端的連接。它既能接受請(qǐng)求,也能發(fā)送請(qǐng)求。在我選擇使用java語(yǔ)言中,有專(zhuān)門(mén)的SocketServer類(lèi)和Socket類(lèi)來(lái)處理用戶的請(qǐng)求和響應(yīng)。網(wǎng)絡(luò)編程是通過(guò)使用套接字來(lái)達(dá)到進(jìn)程間通信目的的編程,Socket編程是網(wǎng)絡(luò)編程的主流工具,Socket API是實(shí)現(xiàn)進(jìn)程間通信的一種編程設(shè)施,也是一種為進(jìn)程間提供底層抽象的機(jī)制,提供了訪問(wèn)下層通信協(xié)議的大量系統(tǒng)調(diào)用和相應(yīng)的數(shù)據(jù)結(jié)構(gòu)。【編程語(yǔ)言和環(huán)境】
15、3. 編程語(yǔ)言C+4. 編程環(huán)境Windows(VC)【實(shí)驗(yàn)具體設(shè)計(jì)實(shí)現(xiàn)及結(jié)果】服務(wù)器端客戶端socketbindlistensocketconnectacceptrecvsendrecvclosesendclose阻塞自己等待客戶連接請(qǐng)求數(shù)據(jù)應(yīng)答數(shù)據(jù)1. 點(diǎn)對(duì)點(diǎn)通信功能實(shí)現(xiàn)網(wǎng)絡(luò)點(diǎn)對(duì)點(diǎn)通訊程序的關(guān)鍵步驟就是實(shí)現(xiàn)信息在網(wǎng)絡(luò)中的發(fā)送和接收。數(shù)據(jù)接收使用的是Socket,數(shù)據(jù)發(fā)送使用的是NetworkStream。1.1利用Socket來(lái)接收信息TcpListener tlListen1 = new TcpListener ( 8889 ) ; /偵聽(tīng)端口號(hào) tlListen1.Start ( )
16、; Socket skSocket = tlListen1.AcceptSocket ( ) ; /接受遠(yuǎn)程計(jì)算機(jī)的連接請(qǐng)求,并獲得用以接收數(shù)據(jù)的Socket實(shí)例 EndPoint tempRemoteEP = skSocket.RemoteEndPoint ; /獲得遠(yuǎn)程計(jì)算機(jī)對(duì)應(yīng)的網(wǎng)絡(luò)遠(yuǎn)程終結(jié)點(diǎn) while ( true ) Byte byStream = new Byte80 ; /定義從遠(yuǎn)程計(jì)算機(jī)接收到數(shù)據(jù)存放的數(shù)據(jù)緩沖區(qū) int i = skSocket.ReceiveFrom ( byStream , ref tempRemoteEP ) ; /接收數(shù)據(jù),并存放到定義的緩沖區(qū)中 s
17、tring sMessage = System.Text.Encoding.UTF8.GetString ( byStream ) ; /以指定的編碼,從緩沖區(qū)中解析出內(nèi)容 MessageBox.Show ( sMessage ) ; /顯示傳送來(lái)的數(shù)據(jù) 1.2利用NetworkStream來(lái)傳送信息TcpClient tcpc = new TcpClient ( 13 , 8888 ) ; /對(duì)IP地址為“13”的計(jì)算機(jī)的8888端口提出連接申請(qǐng) NetworkStream tcpStream = tcpc.GetStream ( ) ; /如
18、果連接申請(qǐng)建立,則獲得用以傳送數(shù)據(jù)的數(shù)據(jù)流string sMsg = 您好,見(jiàn)到您很高興 ; StreamWriter reqStreamW = new StreamWriter ( tcpStream ) ; /以特定的編碼往向數(shù)據(jù)流中寫(xiě)入數(shù)據(jù) ,默認(rèn)為UTF8編碼 reqStreamW.Write ( sMsg ) ; /將字符串寫(xiě)入數(shù)據(jù)流中 reqStreamW.Flush ( ) ; /清理當(dāng)前編寫(xiě)器的所有緩沖區(qū),并使所有緩沖數(shù)據(jù)寫(xiě)入基礎(chǔ)流2. 群組通信功能組播編程需要UDP,有兩個(gè)類(lèi)支持組播網(wǎng)絡(luò)編程Socket和UdpClient.一臺(tái)計(jì)算機(jī)要加入某一個(gè)組,然后接收發(fā)往這個(gè)組的信息。
19、Socket類(lèi)要調(diào)用SetSocketOption函數(shù)加入和離開(kāi)某一個(gè)組。UdpClient類(lèi)有直接的加入和離開(kāi)某個(gè)組的成員函數(shù)可以調(diào)用。而向某個(gè)組發(fā)信息,則沒(méi)有什么特殊的,只需把發(fā)送數(shù)據(jù)的目的地址設(shè)為組播地址就可以了。發(fā)送端: Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoint iep = new IPEndPoint(IPAddress.Parse(), 3000); EndPoint ep = (EndPoint)iep;byt
20、e b = Encoding.ASCII.GetBytes(just a test!); s.SendTo(b, ep); s.Close();接收端: Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoint iep = new IPEndPoint(IPAddress.Any, 3000); EndPoint ep=(EndPoint)iep; s.Bind(iep); s.SetSocketOption(SocketOptionLevel.IP,Soc
21、ketOptionName.AddMembership,new MulticastOption(IPAddress.Parse(); byteb=new byte1024; s.ReceiveFrom(b,ref ep); string test; test = System.Text.Encoding.ASCII.GetString(b); Console.WriteLine(test); s.Close(); Console.ReadKey();3. 廣播功能此功能和組播功能實(shí)現(xiàn)類(lèi)似,只要在發(fā)送端獲得子網(wǎng)中IP廣播地址發(fā)送休息即可。/ 廣播模式(自動(dòng)獲得子網(wǎng)中的IP廣播地
22、址) broadcastIpEndPoint = new IPEndPoint(IPAddress.Broadcast, 3000);【實(shí)驗(yàn)結(jié)果】【實(shí)驗(yàn)總結(jié)】此次實(shí)驗(yàn)是對(duì)Socket的一個(gè)應(yīng)用,讓我更深的了解了Socket函數(shù)的作用及使用方法。實(shí)驗(yàn)過(guò)程中遇到了很多的問(wèn)題,例如:程序只能通信一次。剛開(kāi)始我以為建立的socket套接口只要建立一次并更新連接地址就可以多次使用。當(dāng)初不知道問(wèn)題存在的在于這,在程序加入很多錯(cuò)誤報(bào)告代碼,發(fā)現(xiàn)再客戶端再次connect的時(shí)候返回負(fù)值。在網(wǎng)上查看很多相關(guān)代碼之后,發(fā)現(xiàn)問(wèn)題所在,把建立socket的代碼寫(xiě)進(jìn)客戶端的循環(huán)體中,每次通信都重新建立socket套接口
23、就可以。Socket搭建基本步驟:1、 創(chuàng)建socket;2、阻塞等待客戶端連接;3、客戶端連接之后獲取輸入輸出流,按照協(xié)議對(duì)客戶端進(jìn)行讀寫(xiě);4、關(guān)閉socket。客戶端連接的基本步驟也是一樣的,即:1、創(chuàng)建客戶端,連上相應(yīng)的服務(wù)器;2、連上之后獲取輸入輸出流,按照協(xié)議進(jìn)行讀寫(xiě)操作;3、關(guān)閉客戶端。通過(guò)本次實(shí)驗(yàn)?zāi)軌蚋惺艿骄W(wǎng)絡(luò)在實(shí)際當(dāng)中的運(yùn)用,使我對(duì)網(wǎng)絡(luò)編程有了更深的概念。同時(shí)讓我發(fā)現(xiàn)自己知識(shí)結(jié)構(gòu)的欠缺。比如群組通信功能和廣播功能難以實(shí)現(xiàn),需要我查閱大量的資料才能有所頭緒。源代碼:服務(wù)器端/#include stdafx.h 服務(wù)器端#include#include #include #incl
24、ude #include #include #include #include #include #pragma comment(lib,ws2_32.lib) #define MYPORT 3490 /*定義用戶連接端口*/ #define BACKLOG 10 /*多少等待連接控制*/ #define SERVER_IP_ADDR 1 /*服務(wù)器的IP地址*/ int _tmain(int argc, _TCHAR* argv) SOCKET sock, msgsock; int length = 0; struct sockaddr_in server; struct
25、 sockaddr tcpaddr; char buf1024 = ; int rval= 0, len= 0, err = 0; WORD wVersionRequested; WSADATA wsaData; /*指定socket版本,否則創(chuàng)建socket失敗,即使創(chuàng)建socket返回值不為-1,但是bind時(shí)會(huì)失敗*/ wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) return -1; /* 建立套接字*/ sock = sock
26、et(AF_INET, SOCK_STREAM, 0); if (sock 0) perror(opening stream socket); exit(1); /* 使用任意端口命名套接字*/ server.sin_family = AF_INET; server.sin_port = htons(MYPORT); server.sin_addr.s_addr = inet_addr(SERVER_IP_ADDR); memset(server.sin_zero, 0, sizeof(server.sin_zero); /將服務(wù)器地址與socket綁定在一起 rval = bind(sock
27、, (struct sockaddr *)&server, sizeof(server); if (rval 0) perror(binding stream socket); exit(1); / 找出指定的端口號(hào)并打印出來(lái) length = sizeof(server); if (getsockname(sock, (struct sockaddr *)&server, &length) 0) perror(getting socket name); exit(1); printf(socket port #%dn, ntohs(server.sin_port); / 開(kāi)始接收連接,最大請(qǐng)
28、求數(shù)為 listen(sock, 5); len = sizeof(struct sockaddr); do msgsock = accept(sock, (struct sockaddr *)&tcpaddr, (int *)&len); if (msgsock = -1) perror(accept); else memset(buf, 0, sizeof(buf); if ( (rval = recv(msgsock, buf, sizeof(buf),0) %sn, buf); closesocket(msgsock); while(1); closesocket(msgsock);r
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年老年患者慢性病管理護(hù)理實(shí)務(wù)深度解析
- 2026年老年患者尿失禁評(píng)估與護(hù)理干預(yù)精要
- 保密協(xié)議2026年脫敏處理要求
- 城市綠化養(yǎng)護(hù)與管理工作手冊(cè)(標(biāo)準(zhǔn)版)
- 化妝知識(shí)教學(xué)課件
- 化妝技術(shù)教學(xué)課件
- 2026星巴克(中國(guó))招聘面試題及答案
- 化妝師眼妝新手培訓(xùn)課件
- 國(guó)際市場(chǎng)營(yíng)銷(xiāo)學(xué) 第4版 課件英文 L1 BUILDING GLOBAL MARKET
- 生物制藥行業(yè)生產(chǎn)與質(zhì)量管理手冊(cè)
- 2026新疆阿合奇縣公益性崗位(鄉(xiāng)村振興專(zhuān)干)招聘44人筆試參考題庫(kù)及答案解析
- 北京中央廣播電視總臺(tái)2025年招聘124人筆試歷年參考題庫(kù)附帶答案詳解
- 紀(jì)委監(jiān)委辦案安全課件
- 兒科pbl小兒肺炎教案
- 腹部手術(shù)圍手術(shù)期疼痛管理指南(2025版)
- JJG(吉) 145-2025 無(wú)創(chuàng)非自動(dòng)電子血壓計(jì)檢定規(guī)程
- 2025年學(xué)校領(lǐng)導(dǎo)干部民主生活會(huì)“五個(gè)帶頭”對(duì)照檢查發(fā)言材料
- 顱內(nèi)壓監(jiān)測(cè)與護(hù)理
- 浙江省紹興市上虞區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期語(yǔ)文期末教學(xué)質(zhì)量調(diào)測(cè)試卷(含答案)
- 智慧城市建設(shè)技術(shù)標(biāo)準(zhǔn)規(guī)范
- EPC總承包項(xiàng)目管理組織方案投標(biāo)方案(技術(shù)標(biāo))
評(píng)論
0/150
提交評(píng)論