91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

乡城县| 阿拉善盟| 奉节县| 佛坪县| 旅游| 凌海市| 长丰县| 和顺县| 宝坻区| 如皋市| 称多县| 化州市| 塔河县| 西林县| 公主岭市| 镇安县| 嫩江县| 贡觉县| 灵丘县| 微山县| 成都市| 弥勒县| 昂仁县| 富宁县| 邻水| 韶山市| 昆明市| 莎车县| 鞍山市| 高青县| 赤峰市| 盱眙县| 宁夏| 黎城县| 大厂| 曲沃县| 南和县| 灵山县| 乡城县| 壶关县| 东乡县|