![利用Socket實現(xiàn)雙機通信計算機網(wǎng)絡(luò)課程設(shè)計報告_第1頁](http://file4.renrendoc.com/view/e776f32171ce66f9b75605d810bbcadd/e776f32171ce66f9b75605d810bbcadd1.gif)
![利用Socket實現(xiàn)雙機通信計算機網(wǎng)絡(luò)課程設(shè)計報告_第2頁](http://file4.renrendoc.com/view/e776f32171ce66f9b75605d810bbcadd/e776f32171ce66f9b75605d810bbcadd2.gif)
![利用Socket實現(xiàn)雙機通信計算機網(wǎng)絡(luò)課程設(shè)計報告_第3頁](http://file4.renrendoc.com/view/e776f32171ce66f9b75605d810bbcadd/e776f32171ce66f9b75605d810bbcadd3.gif)
![利用Socket實現(xiàn)雙機通信計算機網(wǎng)絡(luò)課程設(shè)計報告_第4頁](http://file4.renrendoc.com/view/e776f32171ce66f9b75605d810bbcadd/e776f32171ce66f9b75605d810bbcadd4.gif)
![利用Socket實現(xiàn)雙機通信計算機網(wǎng)絡(luò)課程設(shè)計報告_第5頁](http://file4.renrendoc.com/view/e776f32171ce66f9b75605d810bbcadd/e776f32171ce66f9b75605d810bbcadd5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、-. z.目 錄1、目錄12、題目23、設(shè)計任務(wù)24、WinSocket簡介及特點原理25、TCP簡介及特點原理36、Visual C+簡介77、設(shè)計方案88、系統(tǒng)的原理框圖和程序流程圖109、實驗中的問題1410、實驗結(jié)果及分析1411、課程設(shè)計的總結(jié)體會1612、參考文獻16利用Socket實現(xiàn)雙機通信一、設(shè)計任務(wù)1.利用WinSock來實現(xiàn)雙機通信,理解TCP狀態(tài)機圖。2.要求使用WinSock編程,采用其中的TCP面向連接方式,實現(xiàn)文本數(shù)據(jù)的交換。二、WinSocket簡介及特點原理2.1、什么是socket所謂socket通常也稱作套接字,用于描述IP地址和端口,是一個通信鏈的句柄。
2、應(yīng)用程序通常通過套接字向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。Socket接口是TCP/IP網(wǎng)絡(luò)的API,Socket接口定義了許多函數(shù)或例程,程序員可以用它們來開發(fā)TCP/IP網(wǎng)絡(luò)上的應(yīng)用程序。要學(xué)Internet上的TCP/IP網(wǎng)絡(luò)編程,必須理解Socket接口。 Socket接口設(shè)計者最先是將接口放在Uni*操作系統(tǒng)里面的。如果了解Uni*系統(tǒng)的輸入和輸出的話,就很容易了解Socket了。網(wǎng)絡(luò)的Socket數(shù)據(jù)傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket也具有一個類似于翻開文件的函數(shù)調(diào)用Socket(),該函數(shù)返回一個整型的Socket描述符,隨后的連接建立、數(shù)據(jù)傳輸?shù)炔?/p>
3、作都是通過該Socket實現(xiàn)的。常用的Socket類型有兩種:流式SocketSOCK_STREAM和數(shù)據(jù)報式SocketSOCK_DGRAM。流式是一種面向連接的Socket,針對于面向連接的TCP效勞應(yīng)用;數(shù)據(jù)報式Socket是一種無連接的Socket,對應(yīng)于無連接的UDP效勞應(yīng)用。最重要的是,socket 是面向客戶/效勞器模型而設(shè)計的,針對客戶和效勞器程序提供不同的socket 系統(tǒng)調(diào)用。客戶隨機申請一個socket (相當于一個想打的人可以在任何一臺入網(wǎng)上撥號呼叫),系統(tǒng)為之分配一個socket號;效勞器擁有全局公認的 socket ,任何客戶都可以向它發(fā)出連接請求和信息請求(相當于
4、一個被呼叫的擁有一個呼叫方知道的)。socket利用客戶/效勞器模式巧妙地解決了進程之間建立通信連接的問題。效勞器socket 半相關(guān)為全局所公認非常重要。不妨考慮一下,兩個完全隨機的用戶進程之間如何建立通信?假設(shè)通信雙方?jīng)]有任何一方的socket 固定,就好比打的雙方彼此不知道對方的,要通話是不可能的。2.2、WinSocket的通信原理WinSock是一個基于Socket模型的 API。WinSock在 Windows98,Window NT中使用。WinSock一般由兩局部組成:開發(fā)組件和運行組件。開發(fā)組件是供程序員在windows環(huán)境下開發(fā)網(wǎng)絡(luò)應(yīng)用程序使用的,它包括應(yīng)用程序接口庫函數(shù)、
5、頭文件和實現(xiàn)的文檔,其中最主要的是WINSOCK.H運行組件是以動態(tài)庫(DlL)來實現(xiàn)socket接口的。文件名為WINSOCK.DLL應(yīng)用程序在執(zhí)行時裝入它就能實現(xiàn)網(wǎng)絡(luò)通信功能三、TCP簡介及特點原理1.什么是TCPTCP是一種面向連接連接導(dǎo)向的、可靠的、基于字節(jié)流的運輸層Transport layer通信協(xié)議。在簡化的計算機網(wǎng)絡(luò)OSI模型中,它完成第四層傳輸層所指定的功能。在因特網(wǎng)協(xié)議族Internet protocol suite中,TCP層是位于IP層之上,應(yīng)用層之下的中間層。不同主機的應(yīng)用層之間經(jīng)常需要可靠的、像管道一樣的連接,但是IP層不提供這樣的流機制,而是提供不可靠的包交換。應(yīng)
6、用層向TCP層發(fā)送用于網(wǎng)間傳輸?shù)?、?位字節(jié)表示的數(shù)據(jù)流,然后TCP把數(shù)據(jù)流分割成適當長度的報文段通常受該計算機連接的網(wǎng)絡(luò)的數(shù)據(jù)鏈路層的最大傳送單元(MTU)的限制。之后TCP把結(jié)果包傳給IP層,由它來通過網(wǎng)絡(luò)將包傳送給接收端實體的TCP層。TCP為了保證不發(fā)生丟包,就給每個字節(jié)一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然后接收端實體對已成功收到的字節(jié)發(fā)回一個相應(yīng)確實認(ACK); 如果發(fā)送端實體在合理的往返時延(RTT)未收到確認,則對應(yīng)的數(shù)據(jù)假設(shè)喪失了將會被重傳。TCP用一個校驗和函數(shù)來檢驗數(shù)據(jù)是否有錯誤;在發(fā)送和接收時都要計算校驗和。首先,TCP建立連接之后,通信雙方都同
7、時可以進展數(shù)據(jù)的傳輸,其次,他是全雙工的;在保證可靠性上,采用超時重傳和捎帶確認機制。在流量控制上,采用滑動窗口協(xié)議,協(xié)議中規(guī)定,對于窗口未經(jīng)確認的分組需要重傳。在擁塞控制上,采用慢啟動算法。 2.TCP功能提供計算機程序間連接、檢測和丟棄重復(fù)的分組、完成數(shù)據(jù)報確實認、流量控制和網(wǎng)絡(luò)擁塞。3.TCP所提供效勞的主要特點1面向連接的傳輸;2端到端的通信;3高可靠性,確保傳輸數(shù)據(jù)的正確性,不出現(xiàn)喪失或亂序;4全雙工方式傳輸;5采用字節(jié)流方式,即以字節(jié)為單位傳輸字節(jié)序列;6緊急數(shù)據(jù)傳送功能。 4.TCP支持的效勞器類型不管怎樣,TCP/IP是一個協(xié)議集。為應(yīng)用提供一些低級功能,這些包括IP、TCP、
8、UDP。其它是執(zhí)行特定任務(wù)的應(yīng)用協(xié)議,如計算機間傳送文件、發(fā)送電子、或找出誰注冊到另外一臺計算機。因此, 最重要的商業(yè)TCP/IP效勞有:文件傳送File Transfer遠程登錄Remote login計算機Mail網(wǎng)絡(luò)文件系統(tǒng)(NFS)遠程打印(Remote printing)遠程執(zhí)行(Remote e*ecution)名字效勞器(Name servers)終端效勞器(Terminal servers)5.TCP的端口號TCP段構(gòu)造中端口地址都是16比特,可以有在065535圍的端口號。對于這65536個端口號有以下的使用規(guī)定:1端口號小于256的定義為常用端口,效勞器一般都是通過常用端口
9、號來識別的。任何TCP/IP實現(xiàn)所提供的效勞都用11023之間的端口號,是由IANA來管理的;2客戶端只需保證該端口號在本機上是惟一的就可以了??蛻舳丝谔栆虼嬖跁r間很短暫又稱臨時端口號;3大多數(shù)TCP/IP實現(xiàn)給臨時端口號分配10245000之間的端口號。大于5000的端口號是為其他效勞器預(yù)留的。 6.TCP協(xié)議是如何確保數(shù)據(jù)傳輸高可靠性為了保證可靠性,發(fā)送的報文都有遞增的序列號。序列號和確認號用來確保傳輸?shù)目煽啃?。此外,對每個報文都設(shè)立一個定時器,設(shè)定一個最大時延。對那些超過最大時延仍沒有收到確認信息的報文就認為已經(jīng)喪失,需要重傳。 7TCP的效勞流程TCP協(xié)議提供的是可靠的、面向連接的傳輸
10、控制協(xié)議,即在傳輸數(shù)據(jù)前要先建立邏輯連接,然后再傳輸數(shù)據(jù),最后釋放連接3個過程。TCP提供端到端、全雙工通信;采用字節(jié)流方式,如果字節(jié)流太長,將其分段;提供緊急數(shù)據(jù)傳送功能。盡管TCP和UDP都使用一樣的網(wǎng)絡(luò)層IP,TCP卻向應(yīng)用層提供與UDP完全不同的效勞。TCP提供一種面向連接的、可靠的字節(jié)流效勞。面向連接意味著兩個使用TCP的應(yīng)用通常是一個客戶和一個效勞器在彼此交換數(shù)據(jù)之前必須先建立一個TCP連接。這一過程與打很相似,先撥號振鈴,等待對方摘機說喂,然后才說明是誰。在一個TCP連接中,僅有兩方進展彼此通信。播送和多播不能用于TCP。TCP通過以下方式來提供可靠性:應(yīng)用數(shù)據(jù)被分割成TCP認為
11、最適合發(fā)送的數(shù)據(jù)塊。這和UDP完全不同,應(yīng)用程序產(chǎn)生的數(shù)據(jù)報長度將保持不變。由TCP傳遞給IP的信息單位稱為報文段或段segmentTCP如何確定報文段的長度。當TCP發(fā)出一個段后,它啟動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到一個確認,將重發(fā)這個報文段。當TCP收到發(fā)自TCP連接另一端的數(shù)據(jù),它將發(fā)送一個確認。這個確認不是立即發(fā)送,通常將推遲幾分之一秒TCP將保持它首部和數(shù)據(jù)的檢驗和。這是一個端到端的檢驗和,目的是檢測數(shù)據(jù)在傳輸過程中的任何變化。如果收到段的檢驗和有過失,TCP將丟棄這個報文段和不確認收到此報文段希望發(fā)端超時并重發(fā)。既然TCP報文段作為IP數(shù)據(jù)報來傳輸,而I
12、P數(shù)據(jù)報的到達可能會失序,因此TCP報文段的到達也可能會失序。如果必要,TCP將對收到的數(shù)據(jù)進展重新排序,將收到的數(shù)據(jù)以正確的順序交給應(yīng)用層。既然IP數(shù)據(jù)報會發(fā)生重復(fù),TCP的接收端必須丟棄重復(fù)的數(shù)據(jù)。TCP還能提供流量控制。TCP連接的每一方都有固定大小的緩沖空間。TCP的接收端只允許另一端發(fā)送接收端緩沖區(qū)所能接納的數(shù)據(jù)。這將防止較快主機致使較慢主機的緩沖區(qū)溢出。兩個應(yīng)用程序通過TCP連接交換8bit字節(jié)構(gòu)成的字節(jié)流。TCP不在字節(jié)流中插入記錄標識符。我們將這稱為字節(jié)流效勞bytestreamservice。如果一方的應(yīng)用程序先傳10字節(jié),又傳20字節(jié),再傳50字節(jié),連接的另一方將無法了解發(fā)
13、方每次發(fā)送了多少字節(jié)。收方可以分4次接收這80個字節(jié),每次接收20字節(jié)。一端將字節(jié)流放到TCP連接上,同樣的字節(jié)流將出現(xiàn)在TCP連接的另一端。另外,TCP對字節(jié)流的容不作任何解釋。TCP不知道傳輸?shù)臄?shù)據(jù)字節(jié)流是二進制數(shù)據(jù),還是ASCII字符、EBCDIC字符或者其他類型數(shù)據(jù)。對字節(jié)流的解釋由TCP連接雙方的應(yīng)用層解釋。這種對字節(jié)流的處理方式與Uni*操作系統(tǒng)對文件的處理方式很相似。Uni*的核對一個應(yīng)用讀或?qū)懙娜莶蛔魅魏谓忉?,而是交給應(yīng)用程序處理。對Uni*的核來說,它無法區(qū)分一個二進制文件與一個文本文件。TCP是因特網(wǎng)中的傳輸層協(xié)議,使用三次握手協(xié)議建立連接。當主動方發(fā)出SYN連接請求后,等
14、待對方答復(fù)SYN,ACK。這種建立連接的方法可以防止產(chǎn)生錯誤的連接,TCP使用的流量控制協(xié)議是可變大小的滑動窗口協(xié)議。第一次握手:建立連接時,客戶端發(fā)送SYN包(SEQ=*)到效勞器,并進入SYN_SEND狀態(tài),等待效勞器確認。第二次握手:效勞器收到SYN包,必須確認客戶的SYN(ACK=*+1),同時自己也送一個SYN包(SEQ=y),即SYN+ACK包,此時效勞器進入SYN_RECV狀態(tài)。第三次握手:客戶端收到效勞器的SYN+ACK包,向效勞器發(fā)送確認包ACK(ACK=y+1),此包發(fā)送完畢,客戶端和效勞器時入Established狀態(tài),完成三次握手。四、Visual C+簡介Visual
15、 C+是一個功能強大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C+1.0后,隨著其新版本的不斷問世,Visual C+已成為專業(yè)程序員進展軟件開發(fā)的首選工具。雖然微軟公司推出了Visual C+.NET(Visual C+7.0),但它的應(yīng)用的很大的局限性,只適用于Windows 2000,Windows *P和Windows NT4.0。所以實際中,更多的是以Visual C+6.0為平臺。Visual C+它大概可以分成三個主要的局部:1、 Developer Studio,這是一個集成開發(fā)環(huán)境,我們?nèi)粘9ぷ鞯?9%都是在它上面完成的,再加上它的標題赫然寫著
16、Microsoft Visual C+,所以很多人理所當然的認為,那就是Visual C+了。其實不然,雖然Developer Studio提供了一個很好的編輯器和很多Wizard,但實際上它沒有任何編譯和程序的功能,真正完成這些工作的幕后英雄后面會介紹。我們也知道,Developer Studio并不是專門用于VC的,它也同樣用于VB,VJ,VID等Visual Studio家族的其他同胞兄弟。所以不要把Developer Studio當成Visual C+, 它充其量只是Visual C+的一個殼子而已。2、 MFC。從理論上來講,MFC也不是專用于Visual C+,Borland C+
17、,C+Builder和Symantec C+同樣可以處理MFC。同時,用Visual C+編寫代碼也并不意味著一定要用MFC,只要愿意,用Visual C+來編寫SDK程序,或者使用STL,ATL,一樣沒有限制。不過,Visual C+本來就是為MFC打造的,Visual C+中的許多特征和語言擴展也是為MFC而設(shè)計的,所以用Visual C+而不用MFC就等于拋棄了Visual C+中很大的一局部功能。但是,Visual C+也不等于MFC。3、 Platform SDK。這才是Visual C+和整個Visual Studio的精華和靈魂,雖然我們很少能直接接觸到它。大致說來,Platfo
18、rm SDK是以Microsoft C/C+編譯器為核心不是Visual C+,看清楚了,配合MASM,輔以其他一些工具和文檔資料。上面說到Developer Studio沒有編譯程序的功能,則這項工作是由誰來完成的呢?是CL,是NMAKE,和其他許許多多命令行程序,這些我們看不到的程序才是構(gòu)成Visual Studio的基石。五、設(shè)計方案5.1 WinSocket通信的步驟:1.在效勞器端的應(yīng)用程序中的網(wǎng)絡(luò)通信的步驟如下:1建立效勞器端的Socket,開場偵聽整個網(wǎng)絡(luò)中的連接請求。2當檢測到來自客戶端的連接請求時,向客戶端發(fā)送收到連接請求的信息,并建立與客戶端之間的連接,再繼續(xù)進入監(jiān)聽狀態(tài)。
19、3在監(jiān)聽的過程中,如果有用戶發(fā)出了請求,則效勞器會產(chǎn)生一個新的連接Socket來處理用戶的請求,而原來的Socket仍然會進展監(jiān)聽操作。4當完成通信后,效勞器關(guān)閉與客戶端的Socket連接。2.在客戶端應(yīng)用程序中的網(wǎng)絡(luò)通信的步驟如下:(1)建立一個客戶端的Socket。(2)從命令行中得到效勞器的名字,并進展查詢以得到效勞器的IP地址;(3)從命令行中得到效勞器所提供的端口號,以便進展下一步的操作;(4)發(fā)送連接請求到效勞器,并等待效勞器的回饋信息。(5)連接成功后,與效勞器進展數(shù)據(jù)的交互。(6)數(shù)據(jù)處理完畢后,關(guān)閉自身的Socket連接,釋放進展連接所分配的資源,客戶端的程序運行完畢。5.2
20、 、程序中用到的過程函數(shù)介紹如下:1、 Socket 過程Socket 過程創(chuàng)立一個套接字并返回一個整型描述符:Descriptor = socket ( protofamily type protocol)其中 :protofamily: AF-INET 表示TCP/IP協(xié)議系列type: SOCK_STREAM表示面向連接的流傳輸SOCK_DGRAM 表示無連接的面向消息傳輸Protocol: 一般情況下為02、 Bind過程在套接字被創(chuàng)立之后,效勞器使用Bind過程提供一個傳輸層地址,效勞器將通過它等待通信。Bind(socket localaddr addrlen)其中:socket
21、是一個套接字的描述符localaddr 是將要賦予套接字的本地地址,是sockaddr構(gòu)造。Addrlen 是本地地址的長度3、 Listen過程效勞器調(diào)用Listen過程將套接字設(shè)為被動模式以使它能被用來等待客戶的通信。Listen(socketqueuesize)其中:socket 是一個套接字的描述符queuesize表示該套接字的請求隊列的長度,請求隊列的存在允許系統(tǒng)在效勞器正在處理上一個請求時保存到達的其它請求。4、 Connect過程客戶使用Connect過程與指定效勞器建立連接。Connect(socket saddress saddresslen)其中:socket 是客戶端計
22、算機上用于該連接的套接字的描述符saddress 是效勞器地址與協(xié)議端口號,是sockaddr構(gòu)造saddresslen是saddress的長度5、 Accept過程效勞器調(diào)用Accept過程來承受客戶的一個連接請求newsock= accept (socketcaddresscaddresslen)其中:socket 是效勞器已經(jīng)創(chuàng)立并聯(lián)編于指定協(xié)議端口的套接字的描述符caddress用于存放客戶端的地址,是sockaddr構(gòu)造caddresslen是一個指向整型的指針,用于存放caddress的長度6、 Send過程如果套接字已連接,send過程可用來傳輸數(shù)據(jù)。Send(socketdat
23、alengthflags)其中: socket是使用的效勞器/客戶套接字的描述符data是待發(fā)送數(shù)據(jù)在存中的地址length表示數(shù)據(jù)的字節(jié)數(shù)flags包含了請求特殊選項的位,做系統(tǒng)調(diào)試用。7、 Recv 過程一個應(yīng)用可以條用recv從一個連接的套接字接收數(shù)據(jù)。Recv(socketbufferlengthflags)其中:socket是從中接收數(shù)據(jù)的效勞器/客戶套接字的描述符buffer表示存中用來存放接收數(shù)據(jù)的地址length表示緩沖區(qū)的大小flags包含了請求特殊選項的位,做系統(tǒng)調(diào)試用。8、 Close過程Close過程告訴系統(tǒng)終止對一個套接字的使用。Close(socket)其中 :so
24、cket是要關(guān)閉的套接字的描述符在Winsock中,用closesocket(socket)來關(guān)閉套接字。六、系統(tǒng)的原理框圖和程序流程圖e*it(-1);ClientProc();return0;1InputType()0程序流程圖:e*it(-1);ClientProc();return0;1InputType()0strType=sstrType=scoutWSAStartup erron;couttcp Server.n;WSAStartup(MAKEWORD(2,0),&wsadata)!=0coutWSAStartup erron;couttcp Server.n;WSAStartu
25、p(MAKEWORD(2,0),&wsadata)!=0coutWSAStartup erron;couttcp client.n;WSAStartup(MAKEWORD(2,0),&wsadata)!=0coutWSAStartup erron;couttcp client.n;WSAStartup(MAKEWORD(2,0),&wsadata)!=0return1;return-1;return0;strType=scoutsvr or cli(s/c):;return1;return-1;return0;strType=scoutsvr or cli(s/c):;WSACleanup()
26、;MultiIF WSACleanup();bind(sock,(structsockaddr*)&addr,sizeof(addr)=SOCKET_ERROR(sock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP)=INVALID_SOCKETstructsockaddr_inaddr,accAddr;WSACleanup();MultiIF WSACleanup();bind(sock,(structsockaddr*)&addr,sizeof(addr)=SOCKET_ERROR(sock=socket(PF_INET,SOCK_STREAM,IPPRO
27、TO_TCP)=INVALID_SOCKETstructsockaddr_inaddr,accAddr;WSACleanup();WHILEchar*connectedAddr=inet_ntoa(*(in_addr*)&(addr.sin_addr);WSACleanup();connect(sock,(structsockaddr*)&addr,sizeof(structsockaddr)=SOCKET_ERROR(sock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP)=INVALID_SOCKETstructsockaddr_inaddr;WSAClea
28、nup();WHILEchar*connectedAddr=inet_ntoa(*(in_addr*)&(addr.sin_addr);WSACleanup();connect(sock,(structsockaddr*)&addr,sizeof(structsockaddr)=SOCKET_ERROR(sock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP)=INVALID_SOCKETstructsockaddr_inaddr;七、實驗中的問題1、在建立Socket連接時,兩端的端口號必須設(shè)為一致,否則無法建立連接。2、建立好連接之后,必須按照給定的格式輸入通信信息,即m+輸入的信息容,否則,將會出現(xiàn)no this ma
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備類貨物運輸合同
- 私家車租車合同范本
- 木門購買安裝合同范本
- 會展服務(wù)協(xié)議合同正規(guī)范本
- 《教師嗓音保健》課件
- 企業(yè)人員借調(diào)合同
- 建筑工程施工總承包合同補充協(xié)議
- 光之教堂調(diào)研報告
- 基于非鉛鈣鈦礦單晶的高性能X射線探測器研究
- 基于雙氰基新型熒光染料生物硫醇熒光探針的構(gòu)建及其性能研究
- 教育環(huán)境分析報告
- 人力資源服務(wù)公司章程
- (正式版)CB∕T 4552-2024 船舶行業(yè)企業(yè)安全生產(chǎn)文件編制和管理規(guī)定
- 病案管理質(zhì)量控制指標檢查要點
- 2024年西藏中考物理模擬試題及參考答案
- 九型人格與領(lǐng)導(dǎo)力講義
- 人教版五年級上冊數(shù)學(xué)脫式計算練習(xí)200題及答案
- 廉潔應(yīng)征承諾書
- 卵巢黃體囊腫破裂教學(xué)查房
- 醫(yī)院定崗定編
- 2023年大學(xué)物理化學(xué)實驗報告化學(xué)電池溫度系數(shù)的測定
評論
0/150
提交評論