簡體   English   中英

通過套接字傳輸文件

[英]Transfer file over socket

我發現這個代碼是我嘗試過的代碼 ,它很有效但是(!)。 我想將文件存儲在我將選擇的文件夾中,並從我再次選擇的文件夾中獲取該文件。 既然Sender得到了一個參數,那么我想如果我給出一個像/home/user/test.txt這樣的參數,那就沒問題了,它會很好但我不知道如何將文件存儲到特定文件夾(換句話說,服務器部分)。 有任何想法嗎?

如果我對這個論點不對,請務必糾正我:D

PS:它適用於Netbeans的默認文件夾(沒有發件人或服務器的文件夾規范)。

任何幫助贊賞。

坦率地說,雖然我做完作業感覺不好,但我心情很好:)

在下面的代碼(FileReciever)中,我添加了一個新的變量文件夾,該文件夾是從傳遞給main()的第一個參數開始的。 因此,您要將文件保存的文件夾的名稱作為第一個參數傳遞。 我改變的唯一其他行是:File file = new File(folder,file_name);

private String folder = "";
public static void main(String[] args) {
try {
  folder = args[0];
  ServerSocket listener = new ServerSocket(port);

  while (true) {
    FileReceiver file_rec = new FileReceiver();
    file_rec.socket = listener.accept();  

    new Thread(file_rec).start();
  }
}
catch (java.lang.Exception ex) {
  ex.printStackTrace(System.out);
}

}

public void run() {
    try {
      InputStream in = socket.getInputStream();


  int nof_files = ByteStream.toInt(in);

  for (int cur_file=0;cur_file < nof_files; cur_file++) {
    String file_name = ByteStream.toString(in);

    File file=new File(folder, file_name);

    ByteStream.toFile(in, file);
  }
}
catch (java.lang.Exception ex) {
  ex.printStackTrace(System.out);
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM