計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告(ftp客戶端的設(shè)計(jì)與實(shí)現(xiàn))_第1頁(yè)
已閱讀1頁(yè),還剩27頁(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、<p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  課程名稱: 計(jì)算機(jī)網(wǎng)絡(luò) </p><p>  設(shè)計(jì)題目: FTP客戶端的設(shè)計(jì)與實(shí)現(xiàn) </p><p>  系 別: 計(jì)算機(jī)與信息工程學(xué)院

2、 </p><p>  專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) </p><p>  組 別: </p><p>  起止日期: 2011年11月25 日~ 2011年12月10日 </p>

3、<p>  指導(dǎo)教師: </p><p>  計(jì)算機(jī)科學(xué)與技術(shù)系二○一 一年制</p><p><b>  課程設(shè)計(jì)任務(wù)書(shū)</b></p><p><b>  目 錄</b></p><p><b>  第一章

4、 序言3</b></p><p><b>  1.1課題來(lái)源3</b></p><p><b>  1.2開(kāi)發(fā)工具4</b></p><p>  第二章 系統(tǒng)需求分析5</p><p><b>  2.1功能需求5</b></p><p

5、>  2.2 系統(tǒng)模型設(shè)計(jì)5</p><p>  2.3 系統(tǒng)工作流程設(shè)計(jì)5</p><p>  第三章 系統(tǒng)設(shè)計(jì)6</p><p><b>  3.1實(shí)現(xiàn)功能6</b></p><p><b>  3.2函數(shù)說(shuō)明6</b></p><p>  3.2.1界面

6、設(shè)計(jì)代碼6</p><p>  3.2.2功能實(shí)現(xiàn)函數(shù)10</p><p>  第四章 系統(tǒng)實(shí)現(xiàn)13</p><p>  4.1界面設(shè)計(jì)的實(shí)現(xiàn)13</p><p>  4.1.1連接服務(wù)器13</p><p>  4.1.2獲取文件列表14</p><p>  4.1.3斷開(kāi)服務(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>  第六章 參考文獻(xiàn)25</p><p><b>  第一章 序言</b></p><p><b>  ——耿桂花</b></p><

9、;p><b>  1.1課題來(lái)源</b></p><p>  FTP(File Transfer Protocol, FTP)是TCP/IP網(wǎng)絡(luò)上兩臺(tái)計(jì)算機(jī)傳送文件的協(xié)議,F(xiàn)TP是在TCP/IP網(wǎng)絡(luò)和INTERNET上最早使用的協(xié)議之一,它屬于網(wǎng)絡(luò)協(xié)議組的應(yīng)用層。FTP客戶機(jī)可以給服務(wù)器發(fā)出命令來(lái)下載文件,上載文件,創(chuàng)建或改變服務(wù)器上的目錄。FTP是一個(gè)8位的客戶端-服務(wù)器協(xié)議,能操作

10、任何類型的文件而不需要進(jìn)一步處理,就像MIME或Unencode一樣。但是,F(xiàn)TP有著極高的延時(shí),這意味著,從開(kāi)始請(qǐng)求到第一次接收需求數(shù)據(jù)之間的時(shí)間會(huì)非常長(zhǎng),并且不時(shí)的必需執(zhí)行一些冗長(zhǎng)的登陸進(jìn)程。FTP服務(wù)一般運(yùn)行在20和21兩個(gè)端口。端口20用于在客戶端和服務(wù)器之間傳輸數(shù)據(jù)流,而端口21用于傳輸控制流,并且是命令通向ftp服務(wù)器的進(jìn)口。當(dāng)數(shù)據(jù)通過(guò)數(shù)據(jù)流傳輸時(shí),控制流處于空閑狀態(tài)。而當(dāng)控制流空閑很長(zhǎng)時(shí)間后,客戶端的防火墻會(huì)將其會(huì)話置為超

11、時(shí),這樣當(dāng)大量數(shù)據(jù)通過(guò)防火墻時(shí),會(huì)產(chǎn)生一些問(wèn)題。此時(shí),雖然文件可以成功的傳輸,但因?yàn)榭刂茣?huì)話會(huì)被防火墻斷開(kāi),傳輸會(huì)產(chǎn)生一些錯(cuò)誤。FTP客戶端主要目標(biāo)是:促進(jìn)文件的共享(計(jì)算機(jī)程序或數(shù)據(jù));鼓勵(lì)間接或者隱式的使用遠(yuǎn)程計(jì)算機(jī);向用戶屏蔽不</p><p>  因此,開(kāi)發(fā)FTP客戶端成為一個(gè)很有必要的事情。</p><p><b>  1.2開(kāi)發(fā)工具</b></p&g

12、t;<p>  隨著程序設(shè)計(jì)技術(shù)的改革和計(jì)算機(jī)環(huán)境的改變,Java語(yǔ)言也得到了迅速發(fā)展。一方面,C++等面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的發(fā)展為Java提供了基礎(chǔ)。事實(shí)上,Java也大量繼承了C以及C++的成果,并增加了體現(xiàn)程序設(shè)計(jì)發(fā)展?fàn)顟B(tài)的功能。另一方面,網(wǎng)絡(luò)及Internet的發(fā)展對(duì)程序設(shè)計(jì)提出了新的要求,為Java的發(fā)展注入了強(qiáng)大的動(dòng)力。正是Internet的快速發(fā)展和普及,改變了傳統(tǒng)的計(jì)算模式,促進(jìn)了Java的普及與流行。&l

13、t;/p><p>  它最初被命名為Oak,目標(biāo)設(shè)定在家用電器等小型系統(tǒng)的編程語(yǔ)言,來(lái)解決諸如電視機(jī)、電話、鬧鐘、烤面包機(jī)等家用電器的控制和通訊問(wèn)題。由于這些智能化家電的市場(chǎng)需求沒(méi)有預(yù)期的高,Sun放棄了該項(xiàng)計(jì)劃。就在Oak幾近失敗之時(shí),隨著互聯(lián)網(wǎng)的發(fā)展,Sun看到了Oak在計(jì)算機(jī)網(wǎng)絡(luò)上的廣闊應(yīng)用前景,于是改造了Oak,以“Java”的名稱正式發(fā)布。</p><p>  Java 編程語(yǔ)言的風(fēng)

14、格十分接近C、C++語(yǔ)言。Java是一個(gè)純的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,它繼承了 C++ 語(yǔ)言面向?qū)ο蠹夹g(shù)的核心,Java舍棄了C ++語(yǔ)言中容易引起錯(cuò)誤的指針(以引用取代)、運(yùn)算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對(duì)象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)憂。在 Java SE 1.5 版本中,Java 又引入了泛型編程(Generic Pro

15、gramming)、類型安全的枚舉、不定長(zhǎng)參數(shù)和自動(dòng)裝/拆箱等語(yǔ)言特性。 Java 不同于一般的編譯執(zhí)行計(jì)算機(jī)語(yǔ)言和解釋執(zhí)行計(jì)算機(jī)語(yǔ)言。它首先將源代碼編譯成二進(jìn)制字節(jié)碼(bytecode),然后依賴各種不同平臺(tái)上的虛擬機(jī)來(lái)解釋執(zhí)行字節(jié)碼,從而實(shí)現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺(tái)特性。不過(guò),每次的編譯執(zhí)行需要消耗一定的時(shí)間,這同時(shí)也在一定程度上降低了 Java 程序的運(yùn)行效率。但在 J2SE 1.4.2 發(fā)布后,Java 的執(zhí)行速度有了大

16、幅提升。 與傳統(tǒng)程序不同,Sun 公司在推出 Java 之際就將其作為一種開(kāi)放的技術(shù)。全球數(shù)以萬(wàn)計(jì)</p><p>  Java 編程語(yǔ)言的主要特性是個(gè)簡(jiǎn)單、面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無(wú)關(guān)、可移植、高性能、多線程和動(dòng)態(tài)的語(yǔ)言。 </p><p>  第二章 系統(tǒng)需求分析</p><p><b>  ——方瑩瑩</b></p

17、><p><b>  2.1功能需求</b></p><p>  1.實(shí)現(xiàn)一個(gè)圖形用戶界面的FTP客戶端,保證文件的安全傳輸和存儲(chǔ)。</p><p>  2.通過(guò)輸入服務(wù)器地址、用戶名和密碼、可以實(shí)現(xiàn)遠(yuǎn)程FTP主機(jī)的登錄。</p><p>  3.提供本地文件的上傳功能,可對(duì)FTP主機(jī)文件進(jìn)行下載、上傳、刪除、重命名等文件操

18、作。</p><p>  4.可以查看一系列的操作的日志信息。</p><p>  2.2 系統(tǒng)模型設(shè)計(jì)</p><p><b>  FTP的基本模型</b></p><p>  2.3 系統(tǒng)工作流程設(shè)計(jì)</p><p><b>  第三章 系統(tǒng)設(shè)計(jì)</b></p>

19、;<p><b>  ——高進(jìn)</b></p><p>  3.1實(shí)現(xiàn)功能 </p><p>  用戶登陸、用戶退出、文件上傳、文件下載、文件重命名</p><p>  文件刪除、上翻文件目錄、下翻文件目錄</p><p><b&

20、gt;  界面實(shí)現(xiàn)部分:</b></p><p>  設(shè)計(jì)為一個(gè)用戶界面,上面包括各種用戶按鈕、文本輸入欄、狀態(tài)欄等等。具體如下:服務(wù)器地址信息輸入欄、端口信息輸入欄、用戶名、密碼輸入欄、用戶登陸(連接)按鈕、用戶退出(斷開(kāi)連接)按鈕、服務(wù)器文件顯示列表框、下載文件按鈕、上傳文件按鈕、重命名文件按鈕、刪除文件按鈕、上一級(jí)目錄按鈕,下一級(jí)目錄按鈕,狀態(tài)欄。</p><p><

21、;b>  3.2函數(shù)說(shuō)明</b></p><p>  3.2.1界面設(shè)計(jì)代碼 </p><p>  每個(gè)按鈕對(duì)象注冊(cè)監(jiān)聽(tīng)器對(duì)應(yīng)相關(guān)的業(yè)務(wù)邏輯,調(diào)用FtpBean類中的對(duì)應(yīng)方法。下面是頁(yè)面部分實(shí)現(xiàn)的主要代碼以及相關(guān)說(shuō)明:</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客戶端對(duì)象</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();//當(dāng)前狀態(tài)</p><p>  private JButton connectButton=new J

27、Button("連接");//連接按鈕</p><p>  private JButton closeButton=new JButton("斷開(kāi)連接");//斷開(kāi)連接按鈕</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("上級(jí)目錄");</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+" 離開(kāi)服務(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è)置標(biāo)題</p><p>  setVisible(true);</p><p>  this.addWindowListener(//關(guān)閉程序時(shí)的操作</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("端口號(hào):"),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功能實(shí)現(xiàn)函數(shù)</p><p>  使用SUN公司提供的FTP客戶端類庫(kù)。</p><p><b>  主要包括4個(gè)類:</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>  編寫(xiě)FtpBean類實(shí)現(xiàn)業(yè)務(wù)邏

56、輯,包含一個(gè)FtpClient類的對(duì)象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>  獲取輸入流來(lái)得到目錄中的文件信息</p><p><b>  (3) 判斷路徑</b></p><p>  boolean isDir(String line)</p><p>  使用line.startsWith("d")來(lái)判斷</p><p>&l

60、t;b>  (4) 設(shè)置路徑</b></p><p>  boolean setPath(String path)</p><p>  使用ftpClient.cd(path);實(shí)現(xiàn)</p><p><b>  (5) 上傳文件</b></p><p>  boolean uploadFile(Str

61、ing localFile, String targetFileName)</p><p>  使用 ftpClient.cd(path);實(shí)現(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ù)并寫(xiě)入文件</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ù)并寫(xiě)入文件</p><p>  (7) 進(jìn)入上一級(jí)文件目錄</p><p><b>  up()</b><

72、;/p><p>  使用ftpClient.cdUp();實(shí)現(xiàn)</p><p>  (8) 進(jìn)入下一級(jí)文件目錄</p><p><b>  downDir()</b></p><p>  使用上面的方法來(lái)實(shí)現(xiàn)下一級(jí)文件目錄的訪問(wèn)</p><p>  (9) 給文件重命名</p><

73、p>  boolean renameFile(String oldName, String newName)</p><p>  使用ftpClient.rename(oldName, newName);來(lái)實(shí)現(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>  來(lái)實(shí)現(xiàn)</b></p><p>  (11) 獲取當(dāng)前路徑</

75、p><p>  String getDir()</p><p>  使用return this.ftpClient.pwd();實(shí)現(xiàn)</p><p><b>  (12) 關(guān)閉連接</b></p><p>  String close()</p><p>  使用ftpClient.closeServ

76、er();實(shí)現(xiàn)</p><p><b>  第四章 系統(tǒng)實(shí)現(xiàn)</b></p><p><b>  ——單連暉 陳智</b></p><p>  4.1界面設(shè)計(jì)的實(shí)現(xiàn)</p><p>  4.1.1連接服務(wù)器</p><p>  單擊連接若服務(wù)器名稱、端口、用戶名和密碼對(duì)的前提

77、下登錄到指定的服務(wù)器上面,彈出“登錄成功”對(duì)話框,并在下方狀態(tài)欄中顯示“登錄成功</p><p>  4.1.2獲取文件列表</p><p>  登錄到服務(wù)器上面之后,獲取在服務(wù)器用戶的主文件及文件夾</p><p><b>  并在下方狀態(tài)欄顯示</b></p><p>  4.1.3斷開(kāi)服務(wù)器</p>

78、<p>  當(dāng)用戶需要關(guān)閉連接時(shí),單機(jī)“斷開(kāi)連接”就可斷開(kāi)與服務(wù)器的連接,在狀態(tài)欄上顯示“連接已斷開(kāi)”,此時(shí)并不退出客戶端。</p><p><b>  4.1.4上傳文件</b></p><p>  右擊彈出快捷菜單單擊上傳顯示上傳對(duì)話框</p><p><b>  選擇需要上傳的文件</b></p>

79、;<p>  單擊打開(kāi)即可上傳,上傳成功顯示“上傳成功”對(duì)戶框,并在狀態(tài)欄顯示當(dāng)前狀態(tài)</p><p><b>  4.1.5下載</b></p><p><b>  單擊下載</b></p><p>  彈出下載主機(jī)路徑,指定目錄以及文件名稱,單擊打開(kāi)</p><p>  下載成功

80、會(huì)彈出對(duì)話框“下載文件+源文件具體目錄+成功”</p><p><b>  4.1.6重命名</b></p><p>  選中需要重命名的文件或者文件夾,右擊彈出快捷菜單,單擊重命名</p><p>  在彈出的對(duì)話中輸入新的名稱,然后單擊確定</p><p>  彈出重命名成功的消息框</p><

81、p><b>  4.1.7刪除</b></p><p>  選中需要?jiǎng)h除的文件,右擊彈出快捷菜單,單擊刪除</p><p>  彈出刪除文件成功消息框</p><p>  此時(shí)的文件夾已經(jīng)把選中的從列表中移除</p><p><b>  4.1.8刷新</b></p><p

82、>  當(dāng)進(jìn)行上傳,重命名、刪除或者服務(wù)器更新列表時(shí),文件列表沒(méi)有及時(shí)更新,可以點(diǎn)擊刷新按鈕進(jìn)行顯示</p><p>  4.1.9返回上一目錄</p><p>  在文件夾子目錄需要返回上一級(jí)目錄時(shí),單擊“上級(jí)目錄”即可以實(shí)現(xiàn)</p><p>  4.1.10查看日志信息</p><p>  日志信息是對(duì)用戶操作的記錄,如果需要查看,單

83、擊查看日志信息即可打開(kāi)記錄日志的文件</p><p><b>  第五章 總結(jié) </b></p><p>  在老師的指導(dǎo)下,經(jīng)過(guò)我們小組成員的積極探討和研究,我們終于完成了小組的課程設(shè)計(jì)——FTP客戶端的設(shè)計(jì)與實(shí)現(xiàn)。</p><p>  雖然我們?cè)谠撓到y(tǒng)功能上還有許多不足,但通過(guò)這一段時(shí)間的設(shè)計(jì),從擬定方案,設(shè)計(jì)模塊,解決開(kāi)發(fā)過(guò)程中遇到的各種

84、困難,最終實(shí)現(xiàn)了該文件傳輸系統(tǒng)的基本功能。使我們對(duì)FTP客戶端有了更深的了解。</p><p>  FTP的目標(biāo)是提高文件的共享性和可靠高效地傳送數(shù)據(jù),而FTP客戶端的作用是使用戶方便的連接和訪問(wèn)FTP客戶端。該設(shè)計(jì)實(shí)現(xiàn)了簡(jiǎn)單的FTP客戶端,選擇java類庫(kù)使客戶通過(guò)FTP客戶端能簡(jiǎn)單地連接和訪問(wèn),上傳、下載、刪除、刷新、返回上級(jí)目錄等基本的操作功能。我們選擇Java來(lái)實(shí)現(xiàn)主要是它在程序上顯得更加簡(jiǎn)捷靈活,并具有

85、較好的可擴(kuò)充性和移植性。</p><p><b>  第六章 參考文獻(xiàn)</b></p><p>  【1】 謝希仁 計(jì)算機(jī)網(wǎng)絡(luò)(第五版)【M】。北京:電子工業(yè)出版社,2006。</p><p>  【2】 趙生慧等編譯 Java面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)【M】。北京:中國(guó)水利水電出版社,2010。 </p&g

溫馨提示

  • 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ù)僅提供信息存儲(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)論