中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

服務端與客戶端怎么利用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

山阴县| 郎溪县| 平凉市| 阳东县| 房产| 高清| 句容市| 汝州市| 邵武市| 汝阳县| 马山县| 望城县| 乳山市| 木兰县| 土默特左旗| 大庆市| 丁青县| 兖州市| 珲春市| 辉南县| 三亚市| 呼图壁县| 东兴市| 启东市| 资阳市| 平陆县| 新野县| 即墨市| 荔波县| 永善县| 林芝县| 苏尼特左旗| 辉县市| 曲阜市| 广东省| 封开县| 平阴县| 马边| 平罗县| 偏关县| 鹰潭市|