<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      TCP Socket 實現文件上傳

      文件上傳過程一個單向Socket通信過程。客戶端通過文件輸入流讀取文件,然后從Socket獲取輸出流寫入數據。服務端從Socket中獲得輸入流,然后寫入文件輸出流,寫入數據完成則上傳完成。

      服務端UploadServer:

      public class UplaodServer {
          public static void main(String []args){
              try(
                  // 創建一個ServerSocket監聽8080端口的請求
                  // ServerSocket 實現了 AutoCloseable接口, 可以自動釋放資源
              	ServerSocket server = new ServerSocket(8080);
                  // accept()會阻塞當前線程, 等待客戶端請求 
                  Socket socket = server.accept();
                  // 獲取輸入流
                  BufferedInputStream in = new BufferedInputStream(socket.getInputStream());
                  // 由文件輸出流創建緩沖輸出流, 寫入本地upload.jpg 文件
                  FileOutputStream outputStream = new FileOutputStream("./upload.jpg")
              ){
                  // 緩沖區 
                  byte [] buffer = new byte[1024];
                  int len = in.read(buffer);
                  while(len != -1){
                      // 寫入數據到文件
                      outputStream.write(buffer, 0, len);
                      // 再次從Socket中讀取數據
                      len = in.read(buffer);
                  }
                  System.out.println("文件已上傳");
              }catch (IOException e) {
                  e.printStackTrace();
              }
          }
      }
      

      客戶端UploadClient:

      public class UploadClient {
          public static void main(String []args){
              try(
              	// Socket 實現了 AutoCloseable接口 可自動關閉資源
                  Socket socket = new Socket("127.0.0.1", 8080);
                   // 又Socket獲得輸出流, 并創建緩沖輸出流
                  BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream());
                  FileInputStream fileInput = new FileInputStream("F:\file\oxx6j5.jpg");
                  // 由文件輸入流創建緩沖輸入流
                  BufferedInputStream in = new BufferedInputStream(fileInputStream);
              ){
                   // 準備緩沖區
                  byte[] buffer = new byte[1024];
                  int len = in.read(buffer);
                  while (len != -1) {
                      // 寫入Socket
                      out.write(buffer, 0, len);
                      // 再次讀取文件
                      len = in.read(buffer);
                  }
                  System.out.println("上傳成功!");
              }catch (ConnectException e) {
                  System.out.println("服務器未啟動");
                  e.printStackTrace();
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
      }
      

      注意

      server.accept()會阻塞線程,所以最好把server.accept()語句放入子線程中。

      posted @ 2020-12-11 00:46  weiQLog  閱讀(289)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 禄劝| 熟妇人妻久久春色视频网| 中国熟女仑乱hd| 国产成人8x视频网站入口| 日日碰狠狠躁久久躁96avv| 国内熟妇人妻色在线三级| japanese无码中文字幕| 人妻少妇精品中文字幕| 亚洲精品无码高潮喷水A| 免费a级毛片18以上观看精品| 亚洲一区在线成人av| 亚洲天堂网色图伦理经典| 中文字幕一区二区网站| 国产精品午夜福利资源| 精品国产一区二区三区蜜臀| 亚洲人成人伊人成综合网无码| 日本午夜精品一区二区三区电影 | 亚洲成av人片无码天堂下载| 中文字幕一卡二卡三卡| 国产成人亚洲日韩欧美| 亚洲精中文字幕二区三区| 高清免费毛片| 精品无码三级在线观看视频| 国产午夜精品福利免费看| 国产成人午夜福利院| 国产精品成人久久电影| 免费无码高H视频在线观看| 久久国产成人亚洲精品影院老金| 叙永县| 呦系列视频一区二区三区| 精品视频不卡免费观看| 精品久久久久中文字幕日本| 欧美日产国产精品| 久久99精品久久水蜜桃| 国产一区二区不卡91| 久9re热视频这里只有精品免费| 日本中文字幕亚洲乱码| 麻豆精品一区二区综合av| 精品久久久久久无码不卡| 中文字幕无码久久精品| 国产成人亚洲综合图区|