亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

服務端與客戶端怎么利用socket傳文件

發布時間:2020-12-02 15:59:03 來源:億速云 閱讀:135 作者:Leah 欄目:編程語言

這篇文章給大家介紹服務端與客戶端怎么利用socket傳文件,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

邏輯:

1.客戶端將需要查找的文件名以流的形式傳給服務端

2.服務端接受客戶端的連接,把流轉化為字符串,進行一個目錄的遍歷,查找是否存在需要的文件,若未找到,則輸出未找到,若找到,則將文件轉化為流,傳給客戶端

3.客戶端準備接受,將服務端傳過來的流轉化為文件,存儲下載。

4,至此,完成一個簡單的客戶端與服務端傳輸文件的小栗子~

Client.Java

package com.ysk;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
  public static void main(String[] args) {
    try {
      Socket socket = new Socket("127.0.0.1", 5555);
      OutputStream os = socket.getOutputStream();// 字節輸出流
      PrintWriter pw = new PrintWriter(os);
      pw.write("aa.txt");//輸入需要搜索的文件名
      pw.flush();
      socket.shutdownOutput();
      BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
      String a = "";
      String temp = "";
      while ((temp = in.readLine()) != null) {
        a += temp;
      }
      PrintWriter out = new PrintWriter(new OutputStreamWriter(new FileOutputStream("src\\asb.txt")));
      out.write(a);
      out.flush();
      out.close();
    } catch (UnknownHostException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
    }
  }
}

Server.java

package com.ysk;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
  static ServerSocket serverSocket;
  public static void main(String[] args) {
    try {
      serverSocket = new ServerSocket(5555);
      System.out.println("***服務器即將啟動,等待客戶端的連接***");
      Socket socket = serverSocket.accept();
      BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
      String file = br.readLine();
      findFile("src", file);
      if (result) {
        System.out.println("已找到" + file);
        File f = new File(file);
//       File copyfile = new File("src\\file", "bb.txt");
        BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(filepath + file)));
        System.out.println(filepath + file);
        String a = "";
        String temp = "";
        while ((temp = in.readLine()) != null) {
          a += temp;
        }
        PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
        out.write(a);
        out.flush();
        socket.shutdownOutput();
      } else {
        System.out.println("未找到文件");
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

關于服務端與客戶端怎么利用socket傳文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广水市| 波密县| 海淀区| 保山市| 阿图什市| 成都市| 海门市| 兰溪市| 平安县| 许昌县| 永登县| 宝兴县| 台安县| 荔波县| 乌兰浩特市| 景泰县| 深州市| 连城县| 博罗县| 佛学| 深泽县| 安泽县| 马尔康县| 瑞丽市| 读书| 寿阳县| 镇安县| 建湖县| 鄂尔多斯市| 汨罗市| 平凉市| 靖边县| 临潭县| 广河县| 论坛| 禹城市| 扶余县| 宁波市| 宝应县| 康定县| 衡山县|