局域網(wǎng)消息發(fā)送程序_第1頁
局域網(wǎng)消息發(fā)送程序_第2頁
局域網(wǎng)消息發(fā)送程序_第3頁
局域網(wǎng)消息發(fā)送程序_第4頁
局域網(wǎng)消息發(fā)送程序_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 局域網(wǎng)消息發(fā)送程序 局域網(wǎng)消息發(fā)送程序 學(xué)生姓名:xx 指導(dǎo)老師:xxx摘 要 本次課程設(shè)計(jì)的任務(wù)是實(shí)現(xiàn)一個(gè)局域網(wǎng)消息發(fā)送程序,該程序使用Java編程語言實(shí)現(xiàn),消息發(fā)送和接收運(yùn)用了Socket編程,界面編寫通過Swing來實(shí)現(xiàn)。經(jīng)過一個(gè)星期的程序編寫和調(diào)試,成功的完成了局域網(wǎng)消息發(fā)送程序,該程序能夠?qū)崿F(xiàn)同網(wǎng)段主機(jī)之間的消息發(fā)送和接收,并且使用到了多線程讓服務(wù)器能夠同時(shí)監(jiān)聽多個(gè)客戶端。本次課程設(shè)計(jì)編寫的程序能夠很好的方便用戶在局域網(wǎng)內(nèi)互相交流,提供了圖形界面,使交互性大大增加。 關(guān)鍵詞 局域網(wǎng);消息發(fā)送;Socket編程The LAN Message Sending ProgramStuden

2、t name: Jin Fang Advisor:XiaoWei XieAbstract The course design of the task is to achieve a LAN messaging program, the program uses the Java programming language, message sending and receiving the use of Socket programming, interface written in Swing to achieve. After a week of program compiling and

3、debugging, successfully completed the LAN messaging program, the program can achieve the same segments between the host to send and receive messages, and to use the multi thread server can simultaneously monitor multiple clients. The course design of the program can be very good for the user to comm

4、unicate with each other in the local area network, provides a graphical interface, so that the interaction is greatly increasedKey words LAN;Message Sending;Socket Programming1 引言隨著互聯(lián)網(wǎng)逐步普及,互聯(lián)網(wǎng)技術(shù)的逐步提高。網(wǎng)絡(luò)聊天工具作為一種交流工具,已經(jīng)受到網(wǎng)民的青睞。目前,出現(xiàn)了很多功能強(qiáng)大的聊天工具,其中應(yīng)用比較廣泛的有騰訊QQ、MSN-Messager等等。即時(shí)通訊軟件,是每一個(gè)上網(wǎng)用戶都需要的工具,它除了能夠

5、讓您迅速地在網(wǎng)上找到自己的朋友和伙伴之外,還可以實(shí)時(shí)交談和傳遞信息,截止到目前,全球約有近3億多人使用即時(shí)軟件,正因?yàn)榧磿r(shí)通訊軟件擁有數(shù)以億計(jì)的用戶和增長的市場,所以各個(gè)公司都盯上了這個(gè)最大的市場,一時(shí)間,即時(shí)通訊市場硝煙四起。人們的工作和生活也越來越離不開網(wǎng)絡(luò),而即時(shí)聊天是人們最常見、最直接的online交流的方式。本系統(tǒng)以聊天功能為主,通過網(wǎng)絡(luò)為用戶提供一個(gè)人際交流的平臺(tái)。本文所介紹的網(wǎng)絡(luò)聊天系統(tǒng)是基于JAVA編程語言開發(fā)設(shè)計(jì)的,其主要特性是能動(dòng)態(tài)、實(shí)時(shí)的完成消息的傳遞,且具有高效的交互性,能更有效的處理客戶請(qǐng)求,其運(yùn)行時(shí)所需環(huán)境及工作流程和各模塊的工作原理將在本文依次介紹,并且文中提供了

6、全部程序源代碼。1.1設(shè)計(jì)平臺(tái)硬件:一臺(tái)安裝Windows 7系統(tǒng)的聯(lián)有局域網(wǎng)的主機(jī)軟件:eclipse 2 設(shè)計(jì)原理1.1 Socket編程Socket,簡稱套接字,用于實(shí)現(xiàn)網(wǎng)絡(luò)上客戶和服務(wù)器之間的連接。也就是說網(wǎng)絡(luò)上兩個(gè)或兩個(gè)以上雙工方式通信的進(jìn)程之間總有一個(gè)連接,這個(gè)連接的端點(diǎn)成為套接字,套接字是在比較低的層次上通信的。具體的說:一個(gè)服務(wù)器應(yīng)用程序一般偵聽一個(gè)特定的端口等待客戶端的連接請(qǐng)求,當(dāng)一個(gè)連接請(qǐng)求到達(dá)時(shí),客戶端和服武器端建立一個(gè)通信連接,在連接過程中,客戶端被分配一個(gè)本地端口與一個(gè)Socket建立連接,客戶端通過寫Socket來通知服務(wù)器,以讀Socket中的信息,類似的服務(wù)器也

7、獲得一個(gè)本地端口,它需要一個(gè)新的端口號(hào)來偵聽原始端口上的其他連接請(qǐng)求。服務(wù)器也通過它的本地端口連接一個(gè)socket,通過讀寫和客戶端通信。Socket 程序的工作工作過程:1. 建立Socket連接:在通信開始之前由通信雙方確認(rèn)身份,建立一條專有的虛擬連接通道。2. 數(shù)據(jù)通信:利用虛擬連接通道傳送數(shù)據(jù)信息。3. 關(guān)閉:通信結(jié)束時(shí),再將所建的虛擬連接拆除。具體過程如圖2-1: 圖2-1 Socket套接字原理圖1.2 局域網(wǎng)概述局域網(wǎng)(Local Area Network,LAN)是在一個(gè)局部的地理范圍內(nèi)(如一個(gè)學(xué)校、工廠和機(jī)關(guān)內(nèi)),一般是方圓幾千米以內(nèi),將各種計(jì)算機(jī),外部設(shè)備和數(shù)據(jù)庫等互相聯(lián)接

8、起來組成的計(jì)算機(jī)通信網(wǎng)。它可以通過數(shù)據(jù)通信網(wǎng)或?qū)S脭?shù)據(jù)電路,與遠(yuǎn)方的局域網(wǎng)、數(shù)據(jù)庫或處理中心相連接,構(gòu)成一個(gè)較大范圍的信息處理系統(tǒng)。局域網(wǎng)可以實(shí)現(xiàn)文件管理、應(yīng)用軟件共享、打印機(jī)共享、掃描儀共享、工作組內(nèi)的日程安排、電子郵件和傳真通信服務(wù)等功能。局域網(wǎng)嚴(yán)格意義上是封閉型的。它可以由辦公室內(nèi)幾臺(tái)甚至上千上萬臺(tái)計(jì)算機(jī)組成。決定局域網(wǎng)的主要技術(shù)要素為:網(wǎng)絡(luò)拓?fù)洌瑐鬏斀橘|(zhì)與介質(zhì)訪問控制方法。LAN的拓?fù)浣Y(jié)構(gòu)常用的是總線型和環(huán)行,這是由于有限地理范圍決定的,這兩種結(jié)構(gòu)很少在廣域網(wǎng)環(huán)境下使用。LAN還有諸如高可靠性、易擴(kuò)縮和易于管理及安全等多種特性。局域網(wǎng)一般為一個(gè)部門或單位所有,建網(wǎng)、維護(hù)以及擴(kuò)展等較容易

9、,系統(tǒng)靈活性高。其主要特點(diǎn)是:覆蓋的地理范圍較小,只在一個(gè)相對(duì)獨(dú)立的局部范圍內(nèi)聯(lián),如一座或集中的建筑群內(nèi)。使用專門鋪設(shè)的傳輸介質(zhì)進(jìn)行聯(lián)網(wǎng),數(shù)據(jù)傳輸速率高(10Mb/s10Gb/s)通信延遲時(shí)間短,可靠性較高局域網(wǎng)可以支持多種傳輸介質(zhì)局域網(wǎng)的類型很多,若按網(wǎng)絡(luò)使用的傳輸介質(zhì)分類,可分為有線網(wǎng)和無線網(wǎng);若按網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)分類,可分為總線型、星型、環(huán)型、樹型、混合型等;若按傳輸介質(zhì)所使用的訪問控制方法分類,又可分為以太網(wǎng)、令牌環(huán)網(wǎng)、FDDI網(wǎng)和無線局域網(wǎng)等。其中,以太網(wǎng)是當(dāng)前應(yīng)用最普遍的局域網(wǎng)技術(shù)。1.3 C/S結(jié)構(gòu)C/S 結(jié)構(gòu),即大家熟知的客戶機(jī)和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),通過它可以充分利用

10、兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到Client端和Server端來實(shí)現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的Web應(yīng)用發(fā)展,Web和Client/Server 應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問新的和現(xiàn)有的應(yīng)用系統(tǒng),通過現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。3 程序設(shè)計(jì)步驟3.1 服務(wù)器端的設(shè)計(jì)服務(wù)器端是用來接受客戶端的連接請(qǐng)求,在Java中使用ServerSocket類來監(jiān)聽來自客戶端的請(qǐng)求,首先服務(wù)器端打

11、開端口,使用一個(gè)死循環(huán)來不斷的監(jiān)聽來自客戶端的請(qǐng)求,當(dāng)有客戶端的請(qǐng)求時(shí),便會(huì)建立連接,雙方就能夠互相通信。監(jiān)聽服務(wù)器的部分代碼如下:serverSocket = new ServerSocket(Constant.LISTEN_PORT, 20);socket = serverSocket.accept();out = new ObjectOutputStream(socket.getOutputStream();ObjectInputStream in = new ObjectInputStream(socket.getInputStream();實(shí)時(shí)的消息傳輸代碼如下:while (tru

12、e) try message = (String) in.readObject();/用來接收客戶端信息if (message.equals(Constant.CONNECT_QUIT) frame.setOut(null);break;frame.display(message); catch (Exception e) e.printStackTrace();3.2 客戶端的設(shè)計(jì)客戶端主要的的功能是首先向服務(wù)器請(qǐng)求連接,使用Socket類定義服務(wù)器的地址和接收端口,然后和服務(wù)器建立連接,當(dāng)和服務(wù)器建立連接之后,服務(wù)器會(huì)將上線IP主機(jī)發(fā)給所有客戶端。客戶端請(qǐng)求連接部分代碼如下:socket

13、= new Socket(Constant.SERVER_HOST, Constant.LISTEN_PORT); /連接建立frame.display(-); out = new ObjectOutputStream(socket.getOutputStream();frame.setOut(out); in = new ObjectInputStream(socket.getInputStream();在窗口顯示信息:try ta_show.append(自己 + tf_message.getText() + n);out.writeObject(客戶端 + ip + + tf_messa

14、ge.getText();out.flush();tf_message.setText(); catch (IOException ie) ie.printStackTrace();4 程序運(yùn)行截圖4.1 服務(wù)器端截圖當(dāng)點(diǎn)擊運(yùn)行服務(wù)器程序的時(shí)候,桌面會(huì)彈出一個(gè)界面,上面提示這等待連接,當(dāng)有客戶端主機(jī)上線時(shí),服務(wù)器端會(huì)顯示當(dāng)前上線的主機(jī)名和IP,并能和客戶端進(jìn)行消息的方式。運(yùn)行時(shí)的截圖如圖4-1所示:圖4-1服務(wù)器端程序4.2 客戶端截圖當(dāng)點(diǎn)擊運(yùn)行客戶端程序的時(shí)候,桌面會(huì)彈出客戶端的界面,當(dāng)服務(wù)器沒打開時(shí),窗口顯示請(qǐng)求連接,當(dāng)服務(wù)器打開時(shí),客戶端和服務(wù)器建立連接,并且能從服務(wù)器端接收當(dāng)前的上線主

15、機(jī)IP,并能和服務(wù)器相互通信,其運(yùn)行截圖如圖4-2所示:圖4-2客戶端程序5結(jié)束語本次課程設(shè)計(jì)主要目的是設(shè)計(jì)一個(gè)局域網(wǎng)的消息發(fā)送程序,在選好課題之后,我通過互聯(lián)網(wǎng)查找局域網(wǎng)信息傳輸方面的資料,通過這些資料,我清晰了編程的方向,選擇了使用Java編程語言來實(shí)現(xiàn)這個(gè)程序,其中還運(yùn)用到了Socket編程,經(jīng)過一個(gè)星期的編寫,終于完成了程序,經(jīng)過測試,該程序能夠順利的執(zhí)行。通過本次課程設(shè)計(jì),我對(duì)Socket編程更加熟練,對(duì)于網(wǎng)絡(luò)協(xié)議更加的清晰,讓我獲益良多。最后感謝謝曉巍老師的指導(dǎo)和幫助,讓我順利解決了課程設(shè)計(jì)中所遇到的難題。參考文獻(xiàn) 1 張千里,陳光英 .網(wǎng)絡(luò)安全新技術(shù). 北京:人民郵電出版社,20

16、03.1 2 Y.Daniel Liang等編著.Java語言程序設(shè)計(jì). 北京:機(jī)械工業(yè)出版社,20011.5 3 Denning DE. An Intrusion Detection Mode J. IEEE Transaction on Software Engineering, 1987, 2 (2)222-232.附錄:服務(wù)器端程序:package business;import java.io.EOFException;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOu

17、tputStream;import java.io.Serializable;import .ServerSocket;import .Socket;import java.util.ArrayList;import util.Constant;import window.ServerFrame;public class Server private ServerFrame frame;public ArrayList Ips;private ServerSocket serverSocket;private Socket socket;private ArrayList ts;public

18、Server() frame = new ServerFrame();frame.setVisible(true);Ips = new ArrayList();ts = new ArrayList();startServer();private void startServer() try serverSocket = new ServerSocket(Constant.LISTEN_PORT, 20);frame.display(等待連接);boolean bool = true;while (true) / 等待連接socket = serverSocket.accept();for (S

19、tring ip : Ips) if (ip.equals(socket.getInetAddress().getHostAddress() bool = false;break;if (bool) Ips.add(socket.getInetAddress().getHostAddress();Thread1 thread = new Thread1(frame, socket, Ips);ts.add(thread);for (Thread1 t : ts) t.setIps(Ips);new Thread(thread).start();bool = true; catch (EOFEx

20、ception eofException) eofException.printStackTrace(); catch (IOException ioException) ioException.printStackTrace();/ main()方法public static void main(String args) new Server();class Thread1 implements Runnable, Serializable private Socket socket;private ServerFrame frame;private ArrayList Ips;privat

21、e ObjectOutputStream out;public Thread1(ServerFrame frame, Socket socket, ArrayList Ips) this.frame = frame;this.socket = socket;this.Ips = Ips;try out = new ObjectOutputStream(socket.getOutputStream(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();Overridepublic void ru

22、n() / TODO Auto-generated method stubtry String ip = socket.getInetAddress().getHostAddress();/ 建立連接frame.display(已與客戶端 + socket.getInetAddress().getHostName()+ /IP: + socket.getInetAddress().getHostAddress()+ 建立連接!);frame.display(-);out.writeObject(Ips);out.flush();frame.setOut(out);/ out.writeObje

23、ct(服務(wù)器端 連接成功);out.flush();/ 保持通信ObjectInputStream in = new ObjectInputStream(socket.getInputStream();String message = ;while (true) try message = (String) in.readObject();if (message.equals(Constant.CONNECT_QUIT) frame.setOut(null);break;frame.display(message); catch (Exception e) e.printStackTrace(

24、);/ 結(jié)束連接frame.display(客戶端 + socket.getInetAddress().getHostName()+ /IP: + socket.getInetAddress().getHostAddress()+ 中斷了連接!);int i = 0;for (String s : Ips) if (s.equals(ip) Ips.remove(i);i+;out.close();in.close();socket.close(); catch (IOException e1) / TODO Auto-generated catch blocke1.printStackTra

25、ce();public ArrayList getIps() return Ips;public void setIps(ArrayList ips) Ips = ips;try out.writeObject(Ips);out.flush(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();package window;import java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;impor

26、t java.awt.FlowLayout;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.IOException;import java.io.ObjectOutputStream;import javax.swing.JButton;import javax.swing.JFrame;im

27、port javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.plaf.FontUIResource;import util.Constant;public class ServerFrame extends JFrame private JScrollPane scrollPane1;private JTextArea ta_show;private JPanel panel1;privat

28、e JTextField tf_message;private JButton btn_send;private final int SHOW_ROWS = 11;private ObjectOutputStream out;public ServerFrame() UIUtil.setUIFont(new FontUIResource(宋體,Font.PLAIN,20);initComponents();private void initComponents() scrollPane1 = new JScrollPane();ta_show = new JTextArea();panel1

29、= new JPanel();tf_message = new JTextField();btn_send = new JButton();this.setResizable(false);/= this =setTitle(服務(wù)器端);addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) thisWindowClosing(e););Container contentPane = getContentPane();contentPane.setLayout(new BorderLayout

30、();/= scrollPane1 =/- ta_show -ta_show.setRows(SHOW_ROWS);ta_show.setEditable(false);scrollPane1.setViewportView(ta_show);contentPane.add(scrollPane1, BorderLayout.NORTH);/= panel1 =panel1.setLayout(new FlowLayout();/- tf_message -tf_message.setPreferredSize(new Dimension(320, 25);panel1.add(tf_mess

31、age);/- btn_send -btn_send.setText(發(fā)送);btn_send.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) btn_sendActionPerformed(e););panel1.add(btn_send);contentPane.add(panel1, BorderLayout.SOUTH);pack();setLocationRelativeTo(getOwner();setDefaultCloseOperation(JFrame.EXIT

32、_ON_CLOSE );private void btn_sendActionPerformed(ActionEvent e) try ta_show.append( 服務(wù)器端 + tf_message.getText()+n); out.writeObject( 服務(wù)器端 + tf_message.getText(); out.flush(); tf_message.setText(); catch ( IOException ie) ie.printStackTrace(); private void thisWindowClosing(WindowEvent e) if (out !=

33、null) try out.writeObject(Constant.CONNECT_QUIT); out.flush(); catch ( IOException ie) ie.printStackTrace(); public void setOut(ObjectOutputStream out) this.out = out;public void display(String mess) ta_show.append(mess + n);ta_show.setCaretPosition(ta_show.getText().length();客戶端代碼:package business;

34、import java.io.EOFException;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import .InetAddress;import .Socket;import .UnknownHostException;import java.util.ArrayList;import util.Constant;import window.ClientFrame;public class Client private ClientFrame

35、frame;private ObjectOutputStream out;private ObjectInputStream in;private Socket socket;public Client() try frame = new ClientFrame(InetAddress.getLocalHost().getHostName(); catch (UnknownHostException e) / TODO Auto-generated catch blocke.printStackTrace();frame.setVisible(true);startClient();publi

36、c void startClient() try /請(qǐng)求連接frame.display(連接中);socket = new Socket(Constant.SERVER_HOST, Constant.LISTEN_PORT); /連接建立frame.display(連接至服務(wù)器: + socket.getInetAddress().getHostName()+/IP:+socket.getInetAddress().getHostAddress();frame.display(-); out = new ObjectOutputStream(socket.getOutputStream();

37、frame.setOut(out); /保持通信 in = new ObjectInputStream(socket.getInputStream(); String message = ; while (true) try message = (String)in.readObject(); if (message.equals(Constant.CONNECT_QUIT) frame.setOut(null); break; frame.display(message); catch (Exception e) try ArrayList ips = (ArrayList)in.readO

38、bject();frame.setModel(ips); catch (ClassNotFoundException e1) / TODO Auto-generated catch blocke1.printStackTrace(); e.printStackTrace(); /結(jié)束連接 frame.display(服務(wù)器已經(jīng)斷開!); out.close(); in.close(); socket.close();catch (EOFException eofException) System.out.println(Server terminated connection);catch (

39、IOException ioException) ioException.printStackTrace(); public static void main(String args) new Client(); package window;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.e

40、vent.WindowAdapter;import java.awt.event.WindowEvent;import java.io.IOException;import java.io.ObjectOutputStream;import java.util.ArrayList;import java.util.Vector;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable

41、;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.SwingUtilities;import javax.swing.plaf.FontUIResource;import javax.swing.table.DefaultTableModel;import util.Constant;public class ClientFrame extends JFrame private JScrollPane scrollPane1;private JScrollPane scrollPane2

42、;private JTextArea ta_show;private JPanel panel1;private JPanel panlMain;private JTextField tf_message;private JButton btn_send;private String ip;private final int SHOW_ROWS = 11;private JTable tab;private DefaultTableModel model;private ArrayList ips;/ private String show_contents = new StringSHOW_

43、ROWS;private ObjectOutputStream out;public ClientFrame(String ip) UIUtil.setUIFont(new FontUIResource(宋體, Font.PLAIN, 20);this.ip = ip;initComponents();private void initComponents() scrollPane1 = new JScrollPane();scrollPane2 = new JScrollPane();ta_show = new JTextArea();panel1 = new JPanel(null);pa

44、nlMain = new JPanel(null);tf_message = new JTextField();btn_send = new JButton();tab = new JTable() public boolean isCellEditable(int row, int column) return false;this.setResizable(false);/ = this =setTitle(客戶端);addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) thisWind

45、owClosing(e););this.setBounds(0, 0, 490, 500);panlMain.setBounds(0, 0, 490, 400);/ = scrollPane1 =/ - ta_show -ta_show.setRows(SHOW_ROWS);ta_show.setEditable(false);ta_show.setBounds(0, 0, 350, 400);scrollPane1.setViewportView(ta_show);scrollPane1.setBounds(0, 0, 350, 400);panlMain.add(scrollPane1);

46、scrollPane2.setBounds(350, 0, 140, 400);scrollPane2.getViewport().add(tab);panlMain.add(scrollPane2);/ = panel1 =/ - tf_message -tf_message.setBounds(5, 405, 320, 30);panel1.add(tf_message);/ - btn_send -btn_send.setText(發(fā)送);btn_send.setBounds(345, 405, 80, 30);btn_send.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) btn_sendActionPerformed(e););panel1.setBounds(400, 0, 300, 30);panel1.add(btn_send);this.add(panlMain

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論