亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java實現文件上傳服務器和客戶端

2024-07-13 10:16:35
字體:
來源:轉載
供稿:網友

本文實例為大家分享了Java實現文件上傳服務器和客戶端的具體代碼,供大家參考,具體內容如下

文件上傳服務器端:

/**  * 使用TCP協議實現上傳功能的服務器端  * 思路:  * 新建ServerSocket  * 等待客戶端連接  * 連接上后開啟子線程,把連接獲取的Socket傳給子線程  * 循環進行  * @author yajun  *  */ public class UploadServer {    public static void main(String[] args) {   UploadServer server=new UploadServer();   UploadThread command=new UploadThread();   server.start(command);  }    /**   * 功能:接受連接,開啟子線程,循環   * @param command 用于下載的子線程對象,該對象實現了Runnable接口   */  private void start(UploadThread command){   //局部變量   ServerSocket serverSocket = null;   Socket transSocket;   //業務邏輯   try {    serverSocket=new ServerSocket(55555);    while(true){     System.out.println("等待連接……");     transSocket=serverSocket.accept();     int i=0;     i++;     System.out.println("第"+i+"個連接");     //用不用在下載完后關閉線程呢???     command.setSocket(transSocket);     Executors.newFixedThreadPool(5).execute(command);    }   //異常捕獲   } catch (IOException e) {    e.printStackTrace();   //關閉資源   } finally{    try {     serverSocket.close();    } catch (IOException e) {     e.printStackTrace();    }   }//End of try  }//End of connect  @Test  public void testConnect() {   //測試任務:先運行服務器端,然后多次運行客戶端,服務器段可以不斷創建子線程,則測試成功   //測試準備:構造一個線程,用于模擬下載線程   UploadThread command=new UploadThread();   start(command);     }   @Test  public void testDown() throws IOException {   byte[] buf;   ByteArrayInputStream bis;   String str="canglaoshi.avi/ncontent,content,content";   buf=str.getBytes();   bis=new ByteArrayInputStream(buf);   UploadThread ut=new UploadThread();   ut.down(bis);  } } //完成各個傳輸任務的子線程 class UploadThread implements Runnable{    Socket socket;  public UploadThread(){}  public UploadThread(Socket socket){   this.socket=socket;  }  @Override  public void run() {   InputStream in;   try {        in = socket.getInputStream();    down(in);       //異常處理   } catch (IOException e) {    e.printStackTrace();   } finally{    try {     socket.close();    } catch (IOException e) {     e.printStackTrace();    }   }   //測試代碼   /*try {    Thread.sleep(5000);    System.out.println(Thread.currentThread().getName()+",復制完畢");   } catch (InterruptedException e) {    e.printStackTrace();   }*/  }//End of run  public void setSocket(Socket socket){   this.socket=socket;  }  //下載方法  /**   * 目標:把InputStream中的數據寫入到本地   * 思路:   * 1.獲取輸入流,最好傳入輸入流,而不是直接從Socket獲取,傳入有利用單元測試   * 2.從輸入流中讀到文件名   * 3.新建文件和文件輸出流   * 4.從輸入流中讀到文件內容到文件輸出流   * 5.   * @throws IOException   */  public void down(InputStream in) throws IOException{   //局部變量   char ch;   char[] nameArr=new char[256];   byte[] buf=new byte[1024];   String name="";   OutputStream out = null;   //業務邏輯   try {    //第一步:獲取文件名,構造文件輸出流    int i=0;    while((ch=(char) in.read())!='/n'){     nameArr[i++]= ch;    }    //name=nameArr.toString();//這句話無法將字符數組轉換為字符串,需用下面的語句    name=new String(nameArr);    System.out.println("要下載的文件為:"+name);    out=new FileOutputStream("src//down//"+name);    //第二步:將輸入流中的其他內容寫入到文件    int len;    while((len=in.read(buf))!=-1){     out.write(buf,0,len);    }    out.flush();   //異常捕獲   } catch (IOException e) {    e.printStackTrace();   //關閉資源   }finally{    //疑問:兩個捕獲可不可以放到一塊呢,怎樣處理關閉流時的異常最好呢?    in.close();    out.close();   }   //調試   System.out.println(name);  }   }//End of UploadThread 

文件上傳客戶端:

/**  * 使用TCP協議實現上傳功能的客戶端  * @author yajun  */ public class UploadClient {    public static void main(String[] args) {   UploadClient client=new UploadClient();   client.upload("src//thursday//AsListTest.java");  }   /**   * 作用:上傳文件到服務器   * 1.建立到服務器的連接   * 2.獲取輸出流   * 3.將文件內容寫入到輸出流   * 4.獲取服務器的響應   */  private void upload(String name){   Socket socket=null;   OutputStream out;   try {    socket=new Socket("127.0.0.1", 55555);    out=socket.getOutputStream();    write2OutputStream(name, out);   //異常捕獲   } catch (UnknownHostException e) {    e.printStackTrace();   } catch (IOException e) {    e.printStackTrace();   }  }  @Test  public void testUpload() {   upload("src//status.xml");  }  /**   * 作用:傳入文件名和輸出流,將文件寫入到輸出流   * @param path   * @throws IOException   */  private void write2OutputStream(String path,OutputStream out) throws IOException{      FileInputStream fis = null;   byte[] buf=new byte[1024];   String fileName="";   //業務邏輯   try {        //1.寫入文件名    fileName=path.substring(path.lastIndexOf('//')+1);    System.out.println("您要上傳的文件名為:"+fileName);    out.write(fileName.getBytes());    out.write('/n');    //2.寫入文件內容    fis=new FileInputStream(path);    int len;    while((len=fis.read(buf))!=-1){     out.write(buf, 0, len);    }    out.flush();   //異常處理   } catch (IOException e) {    e.printStackTrace();   //關閉資源   } finally{    fis.close();    out.close();   }  }//End of upload  @Test  public void testWrite2OutputStream() throws IOException {   ByteArrayOutputStream out = null;   try {    out=new ByteArrayOutputStream();    write2OutputStream("src//status.xml", out);    System.out.println(out.toString("utf-8"));   } catch (IOException e) {    e.printStackTrace();   } finally{    out.close();   }     }   }

 以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人性生交大片免费看视频直播| 国产91精品久久久久久久| 欧美美女操人视频| 国产97人人超碰caoprom| 色www亚洲国产张柏芝| 欧美日韩亚洲成人| 国产成人精品视频| 中文字幕亚洲专区| 亚洲精品电影在线观看| 日本中文字幕不卡免费| 尤物99国产成人精品视频| 久久精品一偷一偷国产| 日韩中文字幕久久| 不卡毛片在线看| 国自产精品手机在线观看视频| 国产精品视频播放| 久久精品国产清自在天天线| 欧美视频在线看| 一区国产精品视频| 色偷偷888欧美精品久久久| 欧美高清在线观看| 亚洲欧美精品在线| 在线看国产精品| 国产精品稀缺呦系列在线| 欧美综合在线观看| 国产婷婷成人久久av免费高清| 日本久久91av| 国语自产在线不卡| 久久久久久久999精品视频| 在线观看欧美日韩国产| 亚洲伊人久久综合| 国产精品在线看| 国产在线高清精品| 成人在线视频网| 国产69久久精品成人看| 日韩亚洲精品视频| 日本不卡免费高清视频| 中文字幕日韩专区| 欧美在线一级视频| 中日韩午夜理伦电影免费| 久久久久99精品久久久久| 欧美在线视频一区二区| 日韩电影视频免费| 久久久999精品免费| 欧美性xxxxx极品| 另类专区欧美制服同性| 97香蕉超级碰碰久久免费的优势| 亚洲美女又黄又爽在线观看| 国产有码一区二区| 亚洲人成绝费网站色www| 91丨九色丨国产在线| 中文字幕视频在线免费欧美日韩综合在线看| 久久这里只有精品视频首页| 久久精品国产一区| 91精品国产777在线观看| 国产成人久久精品| 欧美一区二区三区免费观看| 国产一区二区香蕉| 欧美人成在线视频| 亚洲九九九在线观看| 国产91在线播放| 久久免费视频在线观看| 欧美日韩一二三四五区| 成人免费淫片aa视频免费| 成人黄色午夜影院| 国产91精品网站| 亚洲欧洲国产伦综合| 亚洲人成电影网站| 深夜福利一区二区| 欧美午夜无遮挡| 最新中文字幕亚洲| 欧美老女人性视频| 最近2019免费中文字幕视频三| 北条麻妃一区二区三区中文字幕| 伊人久久久久久久久久久| 一本色道久久88精品综合| 97视频在线观看免费高清完整版在线观看| 欧美日韩国产一区中文午夜| 亚洲国产精品美女| 久久国产精品影片| 91在线播放国产| 在线日韩日本国产亚洲| 欧美成人久久久| 国产97人人超碰caoprom| 久久综合久久美利坚合众国| 福利一区福利二区微拍刺激| 国产一区在线播放| 久久久亚洲欧洲日产国码aⅴ| 8090成年在线看片午夜| 欧美做受高潮1| 国产午夜精品视频免费不卡69堂| 亚洲精品综合久久中文字幕| 久久成人精品电影| 57pao成人永久免费视频| 欧美自拍大量在线观看| 在线观看久久av| 成人啪啪免费看| 亚洲午夜国产成人av电影男同| 国产精品久久视频| 亚洲色图狂野欧美| 国模吧一区二区三区| 欧美日韩国产一区中文午夜| 亚洲精品久久久久久下一站| 欧美激情一二三| 日韩av在线高清| 亚洲电影成人av99爱色| 欧美精品精品精品精品免费| 国模极品一区二区三区| 国内外成人免费激情在线视频网站| 欧美日韩激情视频| 国产做受69高潮| 日韩精品高清视频| 精品日韩美女的视频高清| 日韩一区二区福利| 欧美精品在线免费| 91精品国产91久久久久久最新| 亚洲福利精品在线| 欧美黑人一级爽快片淫片高清| 久久中文久久字幕| 日韩在线观看你懂的| 欧美极品少妇xxxxⅹ裸体艺术| 久热在线中文字幕色999舞| 欧美大奶子在线| 欧美精品福利在线| 精品国产福利视频| 国产成人福利网站| 爽爽爽爽爽爽爽成人免费观看| 国产精品中文字幕在线| 欧美亚洲在线视频| 中文字幕综合一区| 欧美精品在线第一页| 国产视频精品久久久| 欧美午夜视频一区二区| 亚洲欧洲免费视频| 日韩av在线免费观看一区| 亚洲精品国产精品自产a区红杏吧| 狠狠久久亚洲欧美专区| 自拍偷拍亚洲欧美| 日韩美女视频中文字幕| 欧美在线观看视频| 日韩一区二区三区xxxx| 欧美午夜精品久久久久久浪潮| 欧美最猛性xxxxx免费| 久久亚洲一区二区三区四区五区高| 欧美亚洲激情在线| 亚洲电影免费观看高清完整版在线| 亚洲精品日韩av| 在线精品播放av| 超碰日本道色综合久久综合| 亚洲精品资源在线| 日本精品久久中文字幕佐佐木| 亚洲精品国产suv| 亚洲综合av影视| 国产+人+亚洲| 在线亚洲午夜片av大片| 国产精品久久久av久久久| 久久久伊人欧美| 国产福利视频一区| 亚洲第一福利视频| 成人免费午夜电影| 在线看福利67194| 成人淫片在线看| 日韩成人黄色av| 992tv成人免费视频|