版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計報告</b></p><p> 課程名稱: 計算機網(wǎng)絡(luò) </p><p> 設(shè)計題目: FTP客戶端的設(shè)計與實現(xiàn) </p><p> 系 別: 計算機與信息工程學(xué)院
2、 </p><p> 專 業(yè): 計算機科學(xué)與技術(shù) </p><p> 組 別: </p><p> 起止日期: 2011年11月25 日~ 2011年12月10日 </p>
3、<p> 指導(dǎo)教師: </p><p> 計算機科學(xué)與技術(shù)系二○一 一年制</p><p><b> 課程設(shè)計任務(wù)書</b></p><p><b> 目 錄</b></p><p><b> 第一章
4、 序言3</b></p><p><b> 1.1課題來源3</b></p><p><b> 1.2開發(fā)工具4</b></p><p> 第二章 系統(tǒng)需求分析5</p><p><b> 2.1功能需求5</b></p><p
5、> 2.2 系統(tǒng)模型設(shè)計5</p><p> 2.3 系統(tǒng)工作流程設(shè)計5</p><p> 第三章 系統(tǒng)設(shè)計6</p><p><b> 3.1實現(xiàn)功能6</b></p><p><b> 3.2函數(shù)說明6</b></p><p> 3.2.1界面
6、設(shè)計代碼6</p><p> 3.2.2功能實現(xiàn)函數(shù)10</p><p> 第四章 系統(tǒng)實現(xiàn)13</p><p> 4.1界面設(shè)計的實現(xiàn)13</p><p> 4.1.1連接服務(wù)器13</p><p> 4.1.2獲取文件列表14</p><p> 4.1.3斷開服務(wù)器
7、15</p><p> 4.1.4上傳文件16</p><p> 4.1.5下載18</p><p> 4.1.6重命名19</p><p> 4.1.7刪除21</p><p> 4.1.8刷新22</p><p> 4.1.9返回上一目錄23</p>&
8、lt;p> 4.1.10查看日志信息23</p><p><b> 第五章 總結(jié)24</b></p><p> 第六章 參考文獻25</p><p><b> 第一章 序言</b></p><p><b> ——耿桂花</b></p><
9、;p><b> 1.1課題來源</b></p><p> FTP(File Transfer Protocol, FTP)是TCP/IP網(wǎng)絡(luò)上兩臺計算機傳送文件的協(xié)議,F(xiàn)TP是在TCP/IP網(wǎng)絡(luò)和INTERNET上最早使用的協(xié)議之一,它屬于網(wǎng)絡(luò)協(xié)議組的應(yīng)用層。FTP客戶機可以給服務(wù)器發(fā)出命令來下載文件,上載文件,創(chuàng)建或改變服務(wù)器上的目錄。FTP是一個8位的客戶端-服務(wù)器協(xié)議,能操作
10、任何類型的文件而不需要進一步處理,就像MIME或Unencode一樣。但是,F(xiàn)TP有著極高的延時,這意味著,從開始請求到第一次接收需求數(shù)據(jù)之間的時間會非常長,并且不時的必需執(zhí)行一些冗長的登陸進程。FTP服務(wù)一般運行在20和21兩個端口。端口20用于在客戶端和服務(wù)器之間傳輸數(shù)據(jù)流,而端口21用于傳輸控制流,并且是命令通向ftp服務(wù)器的進口。當數(shù)據(jù)通過數(shù)據(jù)流傳輸時,控制流處于空閑狀態(tài)。而當控制流空閑很長時間后,客戶端的防火墻會將其會話置為超
11、時,這樣當大量數(shù)據(jù)通過防火墻時,會產(chǎn)生一些問題。此時,雖然文件可以成功的傳輸,但因為控制會話會被防火墻斷開,傳輸會產(chǎn)生一些錯誤。FTP客戶端主要目標是:促進文件的共享(計算機程序或數(shù)據(jù));鼓勵間接或者隱式的使用遠程計算機;向用戶屏蔽不</p><p> 因此,開發(fā)FTP客戶端成為一個很有必要的事情。</p><p><b> 1.2開發(fā)工具</b></p&g
12、t;<p> 隨著程序設(shè)計技術(shù)的改革和計算機環(huán)境的改變,Java語言也得到了迅速發(fā)展。一方面,C++等面向?qū)ο蟪绦蛟O(shè)計語言的發(fā)展為Java提供了基礎(chǔ)。事實上,Java也大量繼承了C以及C++的成果,并增加了體現(xiàn)程序設(shè)計發(fā)展狀態(tài)的功能。另一方面,網(wǎng)絡(luò)及Internet的發(fā)展對程序設(shè)計提出了新的要求,為Java的發(fā)展注入了強大的動力。正是Internet的快速發(fā)展和普及,改變了傳統(tǒng)的計算模式,促進了Java的普及與流行。&l
13、t;/p><p> 它最初被命名為Oak,目標設(shè)定在家用電器等小型系統(tǒng)的編程語言,來解決諸如電視機、電話、鬧鐘、烤面包機等家用電器的控制和通訊問題。由于這些智能化家電的市場需求沒有預(yù)期的高,Sun放棄了該項計劃。就在Oak幾近失敗之時,隨著互聯(lián)網(wǎng)的發(fā)展,Sun看到了Oak在計算機網(wǎng)絡(luò)上的廣闊應(yīng)用前景,于是改造了Oak,以“Java”的名稱正式發(fā)布。</p><p> Java 編程語言的風(fēng)
14、格十分接近C、C++語言。Java是一個純的面向?qū)ο蟮某绦蛟O(shè)計語言,它繼承了 C++ 語言面向?qū)ο蠹夹g(shù)的核心,Java舍棄了C ++語言中容易引起錯誤的指針(以引用取代)、運算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)憂。在 Java SE 1.5 版本中,Java 又引入了泛型編程(Generic Pro
15、gramming)、類型安全的枚舉、不定長參數(shù)和自動裝/拆箱等語言特性。 Java 不同于一般的編譯執(zhí)行計算機語言和解釋執(zhí)行計算機語言。它首先將源代碼編譯成二進制字節(jié)碼(bytecode),然后依賴各種不同平臺上的虛擬機來解釋執(zhí)行字節(jié)碼,從而實現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺特性。不過,每次的編譯執(zhí)行需要消耗一定的時間,這同時也在一定程度上降低了 Java 程序的運行效率。但在 J2SE 1.4.2 發(fā)布后,Java 的執(zhí)行速度有了大
16、幅提升。 與傳統(tǒng)程序不同,Sun 公司在推出 Java 之際就將其作為一種開放的技術(shù)。全球數(shù)以萬計</p><p> Java 編程語言的主要特性是個簡單、面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無關(guān)、可移植、高性能、多線程和動態(tài)的語言。 </p><p> 第二章 系統(tǒng)需求分析</p><p><b> ——方瑩瑩</b></p
17、><p><b> 2.1功能需求</b></p><p> 1.實現(xiàn)一個圖形用戶界面的FTP客戶端,保證文件的安全傳輸和存儲。</p><p> 2.通過輸入服務(wù)器地址、用戶名和密碼、可以實現(xiàn)遠程FTP主機的登錄。</p><p> 3.提供本地文件的上傳功能,可對FTP主機文件進行下載、上傳、刪除、重命名等文件操
18、作。</p><p> 4.可以查看一系列的操作的日志信息。</p><p> 2.2 系統(tǒng)模型設(shè)計</p><p><b> FTP的基本模型</b></p><p> 2.3 系統(tǒng)工作流程設(shè)計</p><p><b> 第三章 系統(tǒng)設(shè)計</b></p>
19、;<p><b> ——高進</b></p><p> 3.1實現(xiàn)功能 </p><p> 用戶登陸、用戶退出、文件上傳、文件下載、文件重命名</p><p> 文件刪除、上翻文件目錄、下翻文件目錄</p><p><b&
20、gt; 界面實現(xiàn)部分:</b></p><p> 設(shè)計為一個用戶界面,上面包括各種用戶按鈕、文本輸入欄、狀態(tài)欄等等。具體如下:服務(wù)器地址信息輸入欄、端口信息輸入欄、用戶名、密碼輸入欄、用戶登陸(連接)按鈕、用戶退出(斷開連接)按鈕、服務(wù)器文件顯示列表框、下載文件按鈕、上傳文件按鈕、重命名文件按鈕、刪除文件按鈕、上一級目錄按鈕,下一級目錄按鈕,狀態(tài)欄。</p><p><
21、;b> 3.2函數(shù)說明</b></p><p> 3.2.1界面設(shè)計代碼 </p><p> 每個按鈕對象注冊監(jiān)聽器對應(yīng)相關(guān)的業(yè)務(wù)邏輯,調(diào)用FtpBean類中的對應(yīng)方法。下面是頁面部分實現(xiàn)的主要代碼以及相關(guān)說明:</p><p> package ftp;
22、</p><p> import java.awt.event.*;</p><p> import java.awt.*;</p><p> import java.util.*;</p><p> import java.util.List;</p><p> import java.util.Strin
23、gTokenizer;</p><p> import java.io.*;</p><p> import javax.swing.*;</p><p> import javax.swing.event.*;</p><p> public class FTP extends JFrame</p><p>
24、<b> {</b></p><p> FtpBean ftp=new FtpBean();//FTP客戶端對象</p><p> private FileWriter write ;</p><p> private PrintWriter out;</p><p> private Date time;
25、</p><p> private JTextField url = new JTextField(); //FTP服務(wù)器地址</p><p> private JTextField port = new JTextField(); //FTP服務(wù)器端口</p><p> private JTextField username = new JTextFi
26、eld(); //用戶名</p><p> private JTextField password = new JTextField(); //密碼</p><p> private JTextField status = new JTextField();//當前狀態(tài)</p><p> private JButton connectButton=new J
27、Button("連接");//連接按鈕</p><p> private JButton closeButton=new JButton("斷開連接");//斷開連接按鈕</p><p> private JPopupMenu popup = new JPopupMenu();;</p><p> private JMe
28、nuItem refresh = new JMenuItem("刷新"); //右鍵彈出菜單</p><p> private JMenuItem delete = new JMenuItem("刪除");</p><p> private JMenuItem download = new JMenuItem("下載");
29、 </p><p> private JMenuItem upload = new JMenuItem("上傳"); </p><p> private JMenuItem rename = new JMenuItem("重命名");</p><p> private JMenuItem upDir = new JM
30、enuItem("上級目錄");</p><p> private JMenuItem showLog = new JMenuItem("顯示日志信息");</p><p> final DefaultListModel m=new DefaultListModel(); //顯示文件列表</p><p> JList
31、fileList = new JList(m);</p><p> JScrollPane fileScrollPane;</p><p> private Dimension faceSize = new Dimension(400, 600); //框架大小</p><p> public FTP()</p><p><b&g
32、t; {</b></p><p><b> init(); </b></p><p> createPopup(); //彈出菜單</p><p> time = new Date();</p><p><b> try</b></p><p><
33、;b> {</b></p><p> write = new FileWriter("log.txt",true);</p><p> out = new PrintWriter(write,true);</p><p><b> }</b></p><p> catch(
34、IOException ioe)</p><p><b> {</b></p><p> ioe.printStackTrace(); </p><p><b> }</b></p><p> status.setEditable(false);</p><p>
35、 this.add(status,BorderLayout.SOUTH); //下方</p><p> connectButton.addActionListener( new ActionListener()</p><p><b> {</b></p><p> public void actionPerformed(ActionEv
36、ent e)</p><p><b> {</b></p><p> connect();</p><p><b> }</b></p><p><b> });</b></p><p> closeButton.addActionListen
37、er(new ActionListener()</p><p><b> {</b></p><p> public void actionPerformed(ActionEvent e)</p><p><b> {</b></p><p><b> close();</b
38、></p><p> time = new Date();</p><p> out.println(time+" 離開服務(wù)器:"+url.getText());</p><p><b> }</b></p><p><b> });</b></p>
39、<p> this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //添加框架的關(guān)閉事件處理</p><p> this.pack();</p><p> this.setSize(faceSize); //設(shè)置框架的大小</p><p> Dimension screenSize = Tool
40、kit.getDefaultToolkit().getScreenSize();</p><p> this.setLocation( (int) (screenSize.width - faceSize.getWidth()) / 2,</p><p> (int) (screenSize.height - faceSize.getHeight()) / 2);</p>
41、<p> this.setResizable(false);</p><p> this.setTitle("FTP服務(wù)端"); //設(shè)置標題</p><p> setVisible(true);</p><p> this.addWindowListener(//關(guān)閉程序時的操作</p><p>
42、 new WindowAdapter()</p><p><b> {</b></p><p> public void windowClosing(WindowEvent e)</p><p><b> {</b></p><p><b> close();</b>
43、</p><p> System.exit(0);</p><p><b> }</b></p><p><b> }</b></p><p><b> );</b></p><p><b> }</b></p>
44、;<p> void init()</p><p><b> {</b></p><p> Container contentPane = getContentPane(); //獲取面板</p><p> contentPane.setLayout(new BorderLayout()); //設(shè)置布局</p
45、><p> JPanel up = new JPanel();//設(shè)置面板上方控件布局</p><p> up.setLayout(new GridLayout(3,2));</p><p> url.setText("10.255.76.126");</p><p> port.setText("21&
46、quot;);</p><p> username.setText("gaojin");</p><p> password.setText("gaojin");</p><p> JPanel no1 = new JPanel();</p><p> no1.setLayout(new Bo
47、rderLayout());</p><p> no1.add(new JLabel("服務(wù)器:"),BorderLayout.WEST);</p><p> no1.add(url,BorderLayout.CENTER);</p><p> JPanel no2 = new JPanel();</p><p>
48、 no2.setLayout(new BorderLayout());</p><p> no2.add(new JLabel("端口號:"),BorderLayout.WEST);</p><p> no2.add(port,BorderLayout.CENTER);</p><p> JPanel no3 = new JPanel()
49、;</p><p> no3.setLayout(new BorderLayout());</p><p> no3.add(new JLabel("用戶名:"),BorderLayout.WEST);</p><p> no3.add(username,BorderLayout.CENTER);</p><p>
50、 JPanel no4 = new JPanel();</p><p> no4.setLayout(new BorderLayout());</p><p> no4.add(new JLabel("密碼 :"),BorderLayout.WEST);</p><p> no4.add(password,BorderLayout
51、.CENTER);</p><p> up.add(no1);</p><p> up.add(no2);</p><p> up.add(no3);</p><p> up.add(no4);</p><p> up.add(connectButton);</p><p> up.
52、add(closeButton);</p><p> closeButton.setEnabled(false);</p><p> this.add(up,BorderLayout.NORTH);//上方</p><p> fileScrollPane = new JScrollPane(fileList,</p><p> JS
53、crollPane.VERTICAL_SCROLLBAR_AS_NEEDED,</p><p> JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);</p><p> fileScrollPane.setPreferredSize(new Dimension(300,400));</p><p> this.add(fil
54、eScrollPane,BorderLayout.CENTER); //中部</p><p><b> }</b></p><p> 3.2.2功能實現(xiàn)函數(shù)</p><p> 使用SUN公司提供的FTP客戶端類庫。</p><p><b> 主要包括4個類:</b></p>
55、<p> sun.net.TelnetInputStream</p><p> sun.net.TelnetOutputStream</p><p> sun.net.ftp.FtpClient</p><p> sun.net.ftp.FtpLoginException</p><p> 編寫FtpBean類實現(xiàn)業(yè)務(wù)邏
56、輯,包含一個FtpClient類的對象ftpClient。包含的方法如下:</p><p><b> (1) 建立連接</b></p><p> String connect(String dir, String hostname, int port, String username,String passwd)</p><p> 使用
57、 ftpClient = new FtpClient(hostname, port);</p><p> ftpClient.login(username, passwd);</p><p> (2) 獲取文件名列表</p><p> List<String> getFileNameList()</p><p> 使用
58、 InputStreamReader isr = null;</p><p> BufferedReader br = null;</p><p> isr = new InputStreamReader(this.ftpClient.nameList(this.getDir()));</p><p> br = new BufferedReader(isr)
59、;</p><p> 獲取輸入流來得到目錄中的文件信息</p><p><b> (3) 判斷路徑</b></p><p> boolean isDir(String line)</p><p> 使用line.startsWith("d")來判斷</p><p>&l
60、t;b> (4) 設(shè)置路徑</b></p><p> boolean setPath(String path)</p><p> 使用ftpClient.cd(path);實現(xiàn)</p><p><b> (5) 上傳文件</b></p><p> boolean uploadFile(Str
61、ing localFile, String targetFileName)</p><p> 使用 ftpClient.cd(path);實現(xiàn)</p><p><b> (5) 上傳文件</b></p><p> boolean uploadFile(String localFile, String targetFileName)<
62、/p><p><b> 使用</b></p><p> TelnetOutputStream tos = null;</p><p> RandomAccessFile sendFile = null;</p><p> DataOutputStream dos = null;</p><p>
63、;<b> try </b></p><p><b> {</b></p><p> File file = new File(localFile);</p><p> sendFile = new RandomAccessFile(file, "r");</p><p>
64、; sendFile.seek(0);</p><p> tos = this.ftpClient.put(targetFileName);</p><p> dos = new DataOutputStream(tos);</p><p> int ch = 0;</p><p> while (sendFile.getFileP
65、ointer() < sendFile.length())</p><p><b> {</b></p><p> ch = sendFile.read();</p><p> dos.write(ch);</p><p><b> }</b></p><p>
66、 獲取文件輸出流,讀取數(shù)據(jù)并寫入文件</p><p><b> (6) 下載文件</b></p><p> boolean downloadFile(String srcFileName, String targetFileName)</p><p> 使用TelnetInputStream tis = null;</p>
67、<p> RandomAccessFile getFile = null;</p><p> boolean result = true;</p><p><b> try </b></p><p><b> {</b></p><p> File file = new Fil
68、e(targetFileName);</p><p> getFile = new RandomAccessFile(file, "rw");</p><p> getFile.seek(0);</p><p> tis = this.ftpClient.get(srcFileName);</p><p> Dat
69、aInputStream dis = new DataInputStream(tis);</p><p> int ch = 0;</p><p> while (true) </p><p><b> {</b></p><p> ch = dis.read();</p><p> i
70、f (ch < 0)</p><p><b> {</b></p><p><b> break;</b></p><p><b> } </b></p><p> getFile.write(ch) </p><p><b>
71、 }</b></p><p> getFile.close();</p><p><b> } </b></p><p> 獲取文件輸入流,讀取數(shù)據(jù)并寫入文件</p><p> (7) 進入上一級文件目錄</p><p><b> up()</b><
72、;/p><p> 使用ftpClient.cdUp();實現(xiàn)</p><p> (8) 進入下一級文件目錄</p><p><b> downDir()</b></p><p> 使用上面的方法來實現(xiàn)下一級文件目錄的訪問</p><p> (9) 給文件重命名</p><
73、p> boolean renameFile(String oldName, String newName)</p><p> 使用ftpClient.rename(oldName, newName);來實現(xiàn)</p><p><b> (10) 刪除文件</b></p><p> deleteFile(String fileName
74、)</p><p> 使用String cmd = "DELE " + fileName + "\r\n";</p><p> ftpClient.sendServer(cmd);</p><p><b> 來實現(xiàn)</b></p><p> (11) 獲取當前路徑</
75、p><p> String getDir()</p><p> 使用return this.ftpClient.pwd();實現(xiàn)</p><p><b> (12) 關(guān)閉連接</b></p><p> String close()</p><p> 使用ftpClient.closeServ
76、er();實現(xiàn)</p><p><b> 第四章 系統(tǒng)實現(xiàn)</b></p><p><b> ——單連暉 陳智</b></p><p> 4.1界面設(shè)計的實現(xiàn)</p><p> 4.1.1連接服務(wù)器</p><p> 單擊連接若服務(wù)器名稱、端口、用戶名和密碼對的前提
77、下登錄到指定的服務(wù)器上面,彈出“登錄成功”對話框,并在下方狀態(tài)欄中顯示“登錄成功</p><p> 4.1.2獲取文件列表</p><p> 登錄到服務(wù)器上面之后,獲取在服務(wù)器用戶的主文件及文件夾</p><p><b> 并在下方狀態(tài)欄顯示</b></p><p> 4.1.3斷開服務(wù)器</p>
78、<p> 當用戶需要關(guān)閉連接時,單機“斷開連接”就可斷開與服務(wù)器的連接,在狀態(tài)欄上顯示“連接已斷開”,此時并不退出客戶端。</p><p><b> 4.1.4上傳文件</b></p><p> 右擊彈出快捷菜單單擊上傳顯示上傳對話框</p><p><b> 選擇需要上傳的文件</b></p>
79、;<p> 單擊打開即可上傳,上傳成功顯示“上傳成功”對戶框,并在狀態(tài)欄顯示當前狀態(tài)</p><p><b> 4.1.5下載</b></p><p><b> 單擊下載</b></p><p> 彈出下載主機路徑,指定目錄以及文件名稱,單擊打開</p><p> 下載成功
80、會彈出對話框“下載文件+源文件具體目錄+成功”</p><p><b> 4.1.6重命名</b></p><p> 選中需要重命名的文件或者文件夾,右擊彈出快捷菜單,單擊重命名</p><p> 在彈出的對話中輸入新的名稱,然后單擊確定</p><p> 彈出重命名成功的消息框</p><
81、p><b> 4.1.7刪除</b></p><p> 選中需要刪除的文件,右擊彈出快捷菜單,單擊刪除</p><p> 彈出刪除文件成功消息框</p><p> 此時的文件夾已經(jīng)把選中的從列表中移除</p><p><b> 4.1.8刷新</b></p><p
82、> 當進行上傳,重命名、刪除或者服務(wù)器更新列表時,文件列表沒有及時更新,可以點擊刷新按鈕進行顯示</p><p> 4.1.9返回上一目錄</p><p> 在文件夾子目錄需要返回上一級目錄時,單擊“上級目錄”即可以實現(xiàn)</p><p> 4.1.10查看日志信息</p><p> 日志信息是對用戶操作的記錄,如果需要查看,單
83、擊查看日志信息即可打開記錄日志的文件</p><p><b> 第五章 總結(jié) </b></p><p> 在老師的指導(dǎo)下,經(jīng)過我們小組成員的積極探討和研究,我們終于完成了小組的課程設(shè)計——FTP客戶端的設(shè)計與實現(xiàn)。</p><p> 雖然我們在該系統(tǒng)功能上還有許多不足,但通過這一段時間的設(shè)計,從擬定方案,設(shè)計模塊,解決開發(fā)過程中遇到的各種
84、困難,最終實現(xiàn)了該文件傳輸系統(tǒng)的基本功能。使我們對FTP客戶端有了更深的了解。</p><p> FTP的目標是提高文件的共享性和可靠高效地傳送數(shù)據(jù),而FTP客戶端的作用是使用戶方便的連接和訪問FTP客戶端。該設(shè)計實現(xiàn)了簡單的FTP客戶端,選擇java類庫使客戶通過FTP客戶端能簡單地連接和訪問,上傳、下載、刪除、刷新、返回上級目錄等基本的操作功能。我們選擇Java來實現(xiàn)主要是它在程序上顯得更加簡捷靈活,并具有
85、較好的可擴充性和移植性。</p><p><b> 第六章 參考文獻</b></p><p> 【1】 謝希仁 計算機網(wǎng)絡(luò)(第五版)【M】。北京:電子工業(yè)出版社,2006。</p><p> 【2】 趙生慧等編譯 Java面向?qū)ο蟪绦蛟O(shè)計(第二版)【M】。北京:中國水利水電出版社,2010。 </p&g
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機網(wǎng)絡(luò)課程設(shè)計--簡單ftp服務(wù)器實現(xiàn)
- 計算機網(wǎng)絡(luò)課程設(shè)計_ftp文件傳輸
- 計算機網(wǎng)絡(luò)課程設(shè)計報告
- 《計算機網(wǎng)絡(luò)》課程設(shè)計報告
- 計算機網(wǎng)絡(luò)課程設(shè)計報告
- 計算機網(wǎng)絡(luò)課程設(shè)計報告
- 計算機網(wǎng)絡(luò)課程設(shè)計報告
- 計算機網(wǎng)絡(luò)課程設(shè)計報告
- 計算機網(wǎng)絡(luò)課程設(shè)計報告
- 《計算機網(wǎng)絡(luò)》課程設(shè)計報告
- 計算機網(wǎng)絡(luò)課程設(shè)計報告
- 計算機網(wǎng)絡(luò)課程設(shè)計報告
- 計算機網(wǎng)絡(luò)課程設(shè)計
- 計算機網(wǎng)絡(luò)課程設(shè)計
- 計算機網(wǎng)絡(luò)課程設(shè)計
- 《計算機網(wǎng)絡(luò)課程設(shè)計》
- 計算機網(wǎng)絡(luò)課程設(shè)計
- 計算機網(wǎng)絡(luò)課程設(shè)計
- 計算機網(wǎng)絡(luò)課程設(shè)計
- 計算機網(wǎng)絡(luò)課程設(shè)計
評論
0/150
提交評論