軟件開(kāi)發(fā)實(shí)習(xí)講義-基于C-S模式的軟件開(kāi)發(fā)(題目1).ppt_第1頁(yè)
軟件開(kāi)發(fā)實(shí)習(xí)講義-基于C-S模式的軟件開(kāi)發(fā)(題目1).ppt_第2頁(yè)
軟件開(kāi)發(fā)實(shí)習(xí)講義-基于C-S模式的軟件開(kāi)發(fā)(題目1).ppt_第3頁(yè)
軟件開(kāi)發(fā)實(shí)習(xí)講義-基于C-S模式的軟件開(kāi)發(fā)(題目1).ppt_第4頁(yè)
軟件開(kāi)發(fā)實(shí)習(xí)講義-基于C-S模式的軟件開(kāi)發(fā)(題目1).ppt_第5頁(yè)
已閱讀5頁(yè),還剩80頁(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)介

1、軟件開(kāi)發(fā)實(shí)習(xí)講義,提綱,實(shí)驗(yàn)題目及要求 技術(shù)一:Socket網(wǎng)絡(luò)編程; 技術(shù)二:軟件開(kāi)發(fā)文檔編寫(xiě)規(guī)范; 技術(shù)三:統(tǒng)一建模語(yǔ)言UML; 技術(shù)四:Rational Rose工具與UML; 技術(shù)五:開(kāi)發(fā)環(huán)境;,提綱,實(shí)驗(yàn)題目及要求 技術(shù)一:Socket網(wǎng)絡(luò)編程; 技術(shù)二:軟件開(kāi)發(fā)文檔編寫(xiě)規(guī)范; 技術(shù)三:統(tǒng)一建模語(yǔ)言UML; 技術(shù)四:Rational Rose工具與UML; 技術(shù)五:開(kāi)發(fā)環(huán)境;,實(shí)驗(yàn)題目及要求,【實(shí)驗(yàn)題目】基于客戶端/服務(wù)器模型的軟件開(kāi)發(fā) 【題目概述與總體要求】 題目概述:設(shè)計(jì)一個(gè)XXX網(wǎng)絡(luò)應(yīng)用程序。 總體要求:按照分析、設(shè)計(jì)、編碼、調(diào)試和測(cè)試的軟件開(kāi)發(fā)過(guò)程完成這個(gè)應(yīng)用程序;提交需求分

2、析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)文檔以及UML設(shè)計(jì)文件(其中包括用例圖,類(lèi)圖,狀態(tài)圖,部署圖)。建議客戶端和服務(wù)器的設(shè)計(jì)都使用可視化界面,在界面中加入相應(yīng)的功能按鈕或菜單,便于操作和演示。,實(shí)驗(yàn)題目及要求,【題目具體要求】 客戶端根據(jù)指定的ip地址和端口號(hào)連接到服務(wù)器; 客戶端可以斷開(kāi)和服務(wù)器的連接; 服務(wù)器可以選定某個(gè)已登錄的客戶端,斷開(kāi)與其的連接; 客戶端可以向服務(wù)器發(fā)送文字信息; 服務(wù)器要能顯示所有登錄客戶端的ip地址、端口號(hào)信息等: 服務(wù)器上需要顯示客戶端登錄和斷開(kāi)的提示信息; 服務(wù)器顯示所有登錄客戶端所發(fā)送的文字信息、數(shù)目,及對(duì)應(yīng)的客戶端信息,標(biāo)識(shí)該文字信息是哪個(gè)客戶端發(fā)送; 服務(wù)器能夠從所有

3、接收到文字信息中,篩選從某個(gè)登錄客戶端發(fā)送的文字信息和數(shù)目。 客戶端可以顯示服務(wù)器發(fā)送的文字信息及其數(shù)目; 服務(wù)器可以選定某個(gè)已登錄的客戶端,向其發(fā)送文字信息; 客戶端可以向服務(wù)器發(fā)送文件。 服務(wù)器顯示客戶端發(fā)送的文件數(shù)和當(dāng)前發(fā)送的文件及對(duì)應(yīng)客戶端信息。 15必須實(shí)現(xiàn),67為加分需求,89選作。,實(shí)驗(yàn)題目及要求,【編程提示】 開(kāi)發(fā)環(huán)境和編程語(yǔ)言可自由選擇; 服務(wù)器設(shè)計(jì)一種數(shù)據(jù)結(jié)構(gòu)來(lái)維護(hù)每一個(gè)客戶端的信息,包括socket,IP地址,端口號(hào)、收到文字信息的數(shù)目,文字信息,其中的文字信息應(yīng)該設(shè)計(jì)成另一個(gè)數(shù)據(jù)結(jié)構(gòu)用來(lái)存儲(chǔ)一個(gè)個(gè)文字信息,包括文字字符串、字符串長(zhǎng)度。如果能使用數(shù)據(jù)庫(kù)存儲(chǔ),當(dāng)然更好。 本

4、題目中要求實(shí)現(xiàn)的功能較多,為了更好的開(kāi)發(fā)調(diào)試,可以將上一個(gè)功能實(shí)現(xiàn)并測(cè)試成功后,再實(shí)現(xiàn)其他功能。 用表單顯示信息。,實(shí)驗(yàn)題目及要求,【實(shí)驗(yàn)步驟】 根據(jù)題目,撰寫(xiě)需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)文檔; 根據(jù)需求,利用Rational Rose工具設(shè)計(jì)UML建模圖(用例圖、類(lèi)圖、狀態(tài)圖、部署圖); 根據(jù)UML建模圖在開(kāi)發(fā)環(huán)境中進(jìn)行軟件開(kāi)發(fā); 實(shí)現(xiàn)功能15,并進(jìn)行調(diào)試與測(cè)試; 實(shí)現(xiàn)功能67,并進(jìn)行調(diào)試與測(cè)試; 有時(shí)間的同學(xué)可以實(shí)現(xiàn)功能89; 提交程序源代碼及文檔(包括設(shè)計(jì)文檔和UML圖); 編寫(xiě)實(shí)驗(yàn)報(bào)告,實(shí)習(xí)結(jié)束后1周內(nèi)由班長(zhǎng)交齊。,實(shí)驗(yàn)題目及要求,【實(shí)驗(yàn)報(bào)告內(nèi)容】 題目要求的所有文檔和設(shè)計(jì)圖; 設(shè)計(jì)的

5、思路和關(guān)鍵數(shù)據(jù)結(jié)構(gòu); 測(cè)試數(shù)據(jù),包括對(duì)于異常情況的處理; 軟件使用說(shuō)明書(shū); 在設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試中發(fā)現(xiàn)的問(wèn)題及解決方案; 軟件開(kāi)發(fā)實(shí)習(xí)總結(jié)。 【實(shí)驗(yàn)上機(jī)要求】 開(kāi)放式上機(jī); 第二周的周六、周日集中驗(yàn)收。,提綱,實(shí)驗(yàn)題目及要求 技術(shù)一:Socket網(wǎng)絡(luò)編程; 技術(shù)二:軟件開(kāi)發(fā)文檔編寫(xiě)規(guī)范; 技術(shù)三:統(tǒng)一建模語(yǔ)言UML; 技術(shù)四:Rational Rose工具與UML; 技術(shù)五:開(kāi)發(fā)環(huán)境;,網(wǎng)絡(luò)編程模型,基于有連接網(wǎng)絡(luò)程序的執(zhí)行過(guò)程 服務(wù)程序啟動(dòng) 客戶程序啟動(dòng) 客戶端與服務(wù)器建立連接 客戶端發(fā)送請(qǐng)求 服務(wù)器處理請(qǐng)求,返回響應(yīng) 服務(wù)器斷開(kāi)連接,等待下一個(gè)請(qǐng)求,網(wǎng)絡(luò)編程模型,基于TCP編程模型,主要內(nèi)容

6、,創(chuàng)建網(wǎng)絡(luò)端點(diǎn)socket 連接服務(wù)器connect 綁定服務(wù)器地址和端口bind 監(jiān)聽(tīng)端口listen 接受客戶端連接accept 關(guān)閉socketclose 接收和發(fā)送數(shù)據(jù)read、write,網(wǎng)絡(luò)編程模型,基于TCP編程模型,基于TCP編程模型,什么是套接字,創(chuàng)建網(wǎng)絡(luò)端點(diǎn)socket, /1.創(chuàng)建網(wǎng)絡(luò)端點(diǎn) int sockfd=socket(AF_INET, SOCK_STREAM, 0); if(sockfd=-1) printf(can;t create socketn); exit(1); ,創(chuàng)建網(wǎng)絡(luò)端點(diǎn)socket,創(chuàng)建網(wǎng)絡(luò)端點(diǎn)socket,socket(套接字) 網(wǎng)絡(luò)傳輸?shù)亩斯?jié)

7、點(diǎn) 支持多種協(xié)議 UNIX、INET、IPX 支持多種類(lèi)型 流式(STREAM) 數(shù)據(jù)報(bào)(DGRAM) 原始(RAW),創(chuàng)建網(wǎng)絡(luò)端點(diǎn)socket,int socket (int family, int type, int protocol) 功能:創(chuàng)建socket描述符 參數(shù): family(協(xié)議簇):AF_INET、AF_UNIX type(類(lèi)型):SOCK_STREAM、SOCK_DGRAM、SOCK_RAW protocol(協(xié)議):默認(rèn)為0 返回值:0socket描述符, -1失敗, 系統(tǒng)全局變量errno為錯(cuò)誤代碼,創(chuàng)建網(wǎng)絡(luò)端點(diǎn)socket,socket數(shù)據(jù)結(jié)構(gòu),socket地址,s

8、ocket地址 Linux采用通用socket地址兼容各種協(xié)議 UNIX INET ,通用的地址結(jié)構(gòu): struct sockaddr /*地址類(lèi)型AF_xxx*/ u_short sa_family; /*協(xié)議地址,不同的協(xié)議地址格式不同*/ char sa_data14; ;,socket地址,TCP/IP協(xié)議的socket地址,struct sockaddr_in short sin_family; /*AF_INET*/ u_short sin_port; /*端口號(hào),網(wǎng)絡(luò)字節(jié)順序*/ struct in_addr sin_addr; /*IP地址,網(wǎng)絡(luò)字節(jié)順序*/ char sin_

9、zero8; /*填充字節(jié),必須為全零*/ ;,struct in_addr union struct u_char s_b1,s_b2,s_b3,s_b4; S_un_b; struct u_short s_w1,s_w2; S_un_w; u_long S_addr; S_un; ;,socket地址,TCP/IP協(xié)議的socket地址 常用地址形式(字符串):“127.0.0.1” 地址轉(zhuǎn)換函數(shù) inet_aton(const char *cp,struct in_addr *inp); char* inet_ntoa(struct in_addr in);,/字符串形式地址轉(zhuǎn)換為網(wǎng)絡(luò)地

10、址形式 struct sockaddr_in addr; inet_aton(“219.245.78.159”,字節(jié)順序,主機(jī)字節(jié)順序(以16位整數(shù)0 xA130為例) little-endian順序 低字節(jié)在前 Intel處理器使用little-endian big-endian順序 高字節(jié)在前 sun工作站使用big-endian順序,字節(jié)順序,網(wǎng)絡(luò)字節(jié)順序 統(tǒng)一表示方式 采用big-endian順序 主機(jī)字節(jié)順序和網(wǎng)絡(luò)字節(jié)順序的轉(zhuǎn)換 unsigned short int htons(unsigned short int hostshort) unsigned long int htonl

11、(unsigned long int hotlong) unsigned short int ntohs(unsigned short int netshort) unsigned long int ntohl(unsigned long int netlong),socket地址, /指定服務(wù)器地址 struct sockaddr_in srvaddr; bzero( ,基于TCP編程模型,綁定服務(wù)器地址和端口,int bind(int sockfd,struct sockaddr *myaddr,int addrlen); 功能:綁定本地地址和端口 參數(shù): sockfdsocket描述符

12、myaddr自己的地址 addrlen地址結(jié)構(gòu)長(zhǎng)度 返回值: 0成功,-1失敗,errno為錯(cuò)誤代碼,綁定服務(wù)器地址和端口,int bind(int sockfd,struct sockaddr *myaddr,int addrlen); 說(shuō)明 服務(wù)器和客戶端都可以綁定socket地址,但通常客戶端不需要綁定自己的socket地址。 不綁定地址時(shí)系統(tǒng)自動(dòng)分配一個(gè)端口,并用該端口和本機(jī)ip地址填充客戶端socket地址. 注意INADDR_ANY,綁定服務(wù)器地址和端口, /綁定服務(wù)器地址和端口 if( bind(sockfd, (struct sockaddr *) ,綁定服務(wù)器地址和端口,IN

13、ADDR_ANY 綁定任何網(wǎng)絡(luò)設(shè)備接口,適合于多IP主機(jī) 對(duì)于IP地址經(jīng)常變化的情況也適用,struct sockaddr_in srvaddr; srvaddr.sin_addr.s_addr=htonl(INADDR_ANY); ,基于TCP編程模型,基于TCP編程模型,如何標(biāo)識(shí)一個(gè)連接: IP地址 + 端口號(hào),連接服務(wù)器,int connect(int sockfd,struct sockaddr *servaddr,int addrlen) 功能:連接服務(wù)器 參數(shù): sockfdsocket描述符 servaddr服務(wù)器地址 addrlen地址結(jié)構(gòu)長(zhǎng)度 返回值: 0成功,-1失敗,er

14、rno為錯(cuò)誤代碼,連接服務(wù)器,int connect(int sockfd,struct sockaddr *servaddr,int addrlen) 說(shuō)明: 對(duì)一個(gè)socket描述符不能兩次使用connect函數(shù),int sockfd=socket(); connect(sockfd,); connect(sockfd,);,連接服務(wù)器, /連接服務(wù)器 if( connect(sockfd, (struct sockaddr *) ,基于TCP編程模型,監(jiān)聽(tīng)端口,int listen(int sockfd,int backlog) 功能:監(jiān)聽(tīng)本地地址和端口 參數(shù): sockfd已綁定的so

15、cket描述符 backlog以完成連接,等待接受的隊(duì)列長(zhǎng)度 返回值 0成功,-1失敗,errno為錯(cuò)誤代碼,監(jiān)聽(tīng)端口,int listen(int sockfd,int backlog) 說(shuō)明 執(zhí)行l(wèi)isten函數(shù)后socket轉(zhuǎn)換成被動(dòng)socket,可以接受連接, TCP協(xié)議為每個(gè)偵聽(tīng)socket維護(hù)兩個(gè)隊(duì)列:未完成連接隊(duì)列和已完成連接隊(duì)列, backlog指定已完成連接隊(duì)列的最大長(zhǎng)度,監(jiān)聽(tīng)端口,/ 監(jiān)聽(tīng)端口 if( listen(sockfd,BACKLOG) =-1) printf(listen errorn); exit(1); ,基于TCP編程模型,接受客戶端連接,int acce

16、pt(int sockfd,struct sockaddr *clientaddr,int addrlen); 功能:接受連接 參數(shù): sockfdsocket描述符 clientaddr客戶端地址 addrlen地址結(jié)構(gòu)長(zhǎng)度 返回值 0成功,返回新的socket描述符標(biāo)識(shí)已接受的連接 , -1失敗,errno為錯(cuò)誤代碼,接受客戶端連接,int accept(int sockfd,struct sockaddr *clientaddr,int addrlen); 說(shuō)明 accept函數(shù)返回的socket描述符是真正可以和客戶端通信的socket,服務(wù)器的偵聽(tīng)socket只接受連接,不能用于通信

17、 accept函數(shù)在沒(méi)有已完成的連接時(shí)將阻塞進(jìn)程,接受客戶端連接, /接受客戶端連接 int sin_size=sizeof(struct sockaddr_in); int new_fd= accept(sockfd, (struct sockaddr *) ,基于TCP編程模型,接收數(shù)據(jù),int read(int fd,char *buf,int len); 功能:從socket讀取數(shù)據(jù) 參數(shù): fdsocket描述符 buf接收數(shù)據(jù)緩沖區(qū) len要讀取數(shù)據(jù)大小 返回值 n0 and n=len 讀出n個(gè)字節(jié) n=0 讀通道已關(guān)閉 n0 出錯(cuò)或異常,errno為錯(cuò)誤代碼 阻塞過(guò)程中收到中斷

18、信號(hào),返回EINTR,讀取完整數(shù)據(jù)的read_all函數(shù) int read_all(int fd,char* buf,int nBytes); for(;) rc=read(fd,buf,nBytes); if(rc0)/讀出rc個(gè)字節(jié) return rc; else if (rc=0)/讀通道已關(guān)閉 close(fd); return 0; else if(errno=EINTR) else printf(stderr,“Read error”); close(fd); return -1; / for ,基于TCP編程模型,發(fā)送數(shù)據(jù),int write(int fd,char *buf,i

19、nt len); 功能:從socket讀取數(shù)據(jù) 參數(shù): fdsocket描述符 buf發(fā)送數(shù)據(jù)緩沖區(qū) len要發(fā)送數(shù)據(jù)大小 返回值 0成功,-1失敗,errno為錯(cuò)誤代碼,發(fā)送數(shù)據(jù),int write(int fd,char *buf,int len); 說(shuō)明 系統(tǒng)發(fā)送緩沖區(qū)中空間大于參數(shù)len時(shí)返回len 發(fā)送緩沖區(qū)中空間小于參數(shù)len時(shí)write函數(shù)阻塞 write函數(shù)阻塞時(shí)可能因?yàn)橄铝性蚍祷?發(fā)送緩沖區(qū)中空間大于參數(shù)len 連接被復(fù)位,返回錯(cuò)誤 阻塞過(guò)程中收到中斷信號(hào),返回EINTR write_all函數(shù),int write_all(int fd,char* buf,int nByt

20、es); for(;) wc=write(sockfd,buf, nBytes); if(wc0) return wc; else if(errno=EINTR) /收到中斷信號(hào) else printf(stderr,“Write error”); close(sockfd); return -1; /for ,關(guān)閉socket,int close(int sockfd) 功能:關(guān)閉socket 參數(shù): sockfdsocket描述符 返回值 0成功,-1失敗,errno為錯(cuò)誤代碼 說(shuō)明 調(diào)用close只是將對(duì)sockfd的引用減1,直到對(duì)sockfd的引用為0時(shí)才清除sockfd ,TCP協(xié)

21、議將繼續(xù)使用sockfd,直到所有數(shù)據(jù)發(fā)送完成,必須的頭文件,#include #include #include #include #include #include ,主要內(nèi)容,UDP Socket編程 原始socket編程,UDP Socket編程,UDP socket編程模型,UDP Socket編程,int recvfrom(int sockfd,void *buf,int len,unsigned char flags,struct socketaddr *from,socklen_t *addrlen); 功能:接收UDP數(shù)據(jù)包 參數(shù): 前4個(gè)參數(shù)和recv相同 from發(fā)送者s

22、ocket地址,NULL表示不需要 addrlensocket地址長(zhǎng)度,from為NULL時(shí)必須置為NULL 返回值:=0成功,-1失敗,UDP Socket編程,recvfrom函數(shù) 說(shuō)明: UDP協(xié)議給每個(gè)UDP SOCKET設(shè)置一個(gè)接收緩沖區(qū),每一個(gè)收到的數(shù)據(jù)報(bào)根據(jù)其端口放在不同緩沖區(qū)。 recvfrom函數(shù)每次從接收緩沖區(qū)隊(duì)列取回一個(gè)數(shù)據(jù)報(bào),沒(méi)有數(shù)據(jù)報(bào)時(shí)將阻塞,返回值為0表示收到長(zhǎng)度為0的空數(shù)據(jù)報(bào),不表示對(duì)方已結(jié)束發(fā)送,UDP Socket編程,int sendto(int sockfd,const void *buf,int len,unsigned char flags,struc

23、t socketaddr *to,int tolen); 功能:發(fā)送UDP數(shù)據(jù)包 參數(shù): 前4個(gè)參數(shù)和send相同 to接收者socket地址 addrlensocket地址長(zhǎng)度 返回值:=0成功,-1失敗,UDP Socket編程,sendto函數(shù) 說(shuō)明: 每次調(diào)用sendto都必須指明接收方socket地址,UDP協(xié)議沒(méi)有設(shè)置發(fā)送緩沖區(qū),sendto將數(shù)據(jù)報(bào)拷貝到系統(tǒng)緩沖區(qū)后返回,通常不會(huì)阻塞 允許發(fā)送空數(shù)據(jù)報(bào),此時(shí)sendto返回值為0,UDP Socket編程,UDP服務(wù)器示例 UDP服務(wù)器特點(diǎn) 服務(wù)器不接受客戶端連接,只需監(jiān)聽(tīng)端口 循環(huán)服務(wù)器,可以交替處理各個(gè)客戶端數(shù)據(jù)包,不會(huì)被一個(gè)

24、客戶端獨(dú)占,UDP Socket編程,udp客戶端特點(diǎn) 客戶端不用建立連接,第一次調(diào)用sendto函數(shù)時(shí),UDP協(xié)議為這個(gè)UDP socket選擇一個(gè)端口號(hào),以后的發(fā)送和接收操作均使用這個(gè)端口號(hào) 客戶端可以接收來(lái)自任何主機(jī)的數(shù)據(jù)報(bào) 客戶端可能永遠(yuǎn)阻塞(服務(wù)器主機(jī)崩潰),UDP Socket編程,有連接的udp socket 在udp socket上調(diào)用connect函數(shù),但不會(huì)產(chǎn)生3次握手過(guò)程,只記錄連接另一方的IP和端口,connect函數(shù)立即返回 特點(diǎn): 發(fā)送UDP數(shù)據(jù)報(bào)時(shí)不用指定服務(wù)器地址 只能接收來(lái)自指定服務(wù)器的數(shù)據(jù)報(bào),UDP Socket編程,有連接的udp socket 錯(cuò)誤返回情

25、況 數(shù)據(jù)報(bào)成功到達(dá)服務(wù)器,但服務(wù)器接收緩沖區(qū)已滿,丟棄該數(shù)據(jù)報(bào),不返回錯(cuò)誤 數(shù)據(jù)報(bào)成功到達(dá)服務(wù)器,但服務(wù)器并沒(méi)有在該端口上提供服務(wù),UDP協(xié)議丟棄數(shù)據(jù)報(bào)返回ICMP錯(cuò)誤消息,客戶端主機(jī)接收到這個(gè)ICMP消息后將以異步方式向客戶端返回一個(gè)ECONNRESET錯(cuò)誤,UDP Socket編程,有連接的udp socket 斷開(kāi)有連接的udp socket udp socket允許對(duì)一個(gè)socket多次調(diào)用connect函數(shù),每次調(diào)用connect函數(shù)將釋放原來(lái)綁定的地址,綁定到新地址 利用connect函數(shù)綁定一個(gè)特殊地址可以斷開(kāi)之前的udp連接,struct sockaddr_in addr; .

26、 addr.sin_family=AF_UNSPEC; . connect(sockfd,(struct sockaddr *),UDP Socket編程,使用UDP Socket的說(shuō)明 UDP協(xié)議不保證數(shù)據(jù)報(bào)可靠到達(dá) 用超時(shí)和重發(fā)機(jī)制處理丟失的數(shù)據(jù)報(bào) 用數(shù)據(jù)報(bào)序列號(hào)區(qū)分重復(fù)數(shù)據(jù)報(bào) UDP協(xié)議不保證數(shù)據(jù)報(bào)順序到達(dá) UDP協(xié)議沒(méi)有流量控制 可以由程序維護(hù)一個(gè)發(fā)送緩沖區(qū),將數(shù)據(jù)報(bào)保存在該緩沖區(qū),直到收到確認(rèn)才清除,當(dāng)用戶緩沖區(qū)滿時(shí)不再發(fā)送數(shù)據(jù)報(bào),原始socket編程,概述 TCP和UDP Socket對(duì)TCP和UDP協(xié)議做了封裝,簡(jiǎn)化了編程接口,但失去了對(duì)IP數(shù)據(jù)包操作的靈活性 原始socket直接針對(duì)IP數(shù)據(jù)包編程,具有更強(qiáng)的靈活性,能夠訪問(wèn)ICMP和IGMP數(shù)據(jù)包 可

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論