最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用socket進(jìn)行服務(wù)端與客戶端傳文件的方法

 更新時間:2017年08月18日 09:35:42   作者:ysk_xh_521  
這篇文章主要介紹了使用socket進(jìn)行服務(wù)端與客戶端傳文件的方法,需要的朋友可以參考下

邏輯:

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

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

3.客戶端準(zhǔn)備接受,將服務(wù)端傳過來的流轉(zhuǎn)化為文件,存儲下載。

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

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();// 字節(jié)輸出流
      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("***服務(wù)器即將啟動,等待客戶端的連接***");
      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();
    }
  }

需自備aa.txt,這種資源文件,以便測試。

總結(jié)

以上所述是小編給大家介紹的使用socket進(jìn)行服務(wù)端與客戶端傳文件的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 在Spring AOP中代理對象創(chuàng)建的步驟詳解

    在Spring AOP中代理對象創(chuàng)建的步驟詳解

    今天和小伙伴們聊一聊 Spring AOP 中的代理對象是怎么創(chuàng)建出來的,透過這個過程再去熟悉一下 Bean 的創(chuàng)建過程,感興趣的小伙伴跟著小編一起來看看吧
    2023-08-08
  • 深入理解java中for和foreach循環(huán)

    深入理解java中for和foreach循環(huán)

    下面小編就為大家?guī)硪黄钊肜斫鈐ava中for和foreach循環(huán)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • java調(diào)用mysql存儲過程實(shí)例分析

    java調(diào)用mysql存儲過程實(shí)例分析

    這篇文章主要介紹了java調(diào)用mysql存儲過程的方法,以實(shí)例形式較為詳細(xì)的分析了mysql數(shù)據(jù)庫的建立和存儲過程的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2015-06-06
  • JAVA集合框架Map特性及實(shí)例解析

    JAVA集合框架Map特性及實(shí)例解析

    這篇文章主要介紹了JAVA集合框架Map特性及實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • java 如何遠(yuǎn)程控制tomcat啟動關(guān)機(jī)

    java 如何遠(yuǎn)程控制tomcat啟動關(guān)機(jī)

    這篇文章主要介紹了java 遠(yuǎn)程控制tomcat啟動關(guān)機(jī)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • java 裝飾模式(Decorator Pattern)詳解

    java 裝飾模式(Decorator Pattern)詳解

    這篇文章主要介紹了java 裝飾模式(Decorator Pattern)詳解的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Spring IOC基于注解啟動示例詳析

    Spring IOC基于注解啟動示例詳析

    這篇文章主要給大家介紹了Spring IOC基于注解啟動的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java判斷兩個集合是否具有交集及如何獲得交集詳解

    Java判斷兩個集合是否具有交集及如何獲得交集詳解

    這篇文章主要給大家介紹了關(guān)于Java判斷兩個集合是否具有交集及如何獲得交集的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Spring?Boot小型項(xiàng)目如何使用異步任務(wù)管理器實(shí)現(xiàn)不同業(yè)務(wù)間的解耦

    Spring?Boot小型項(xiàng)目如何使用異步任務(wù)管理器實(shí)現(xiàn)不同業(yè)務(wù)間的解耦

    這篇文章主要介紹了Spring?Boot小型項(xiàng)目如何使用異步任務(wù)管理器實(shí)現(xiàn)不同業(yè)務(wù)間的解耦,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Springboot如何設(shè)置靜態(tài)資源緩存一年

    Springboot如何設(shè)置靜態(tài)資源緩存一年

    這篇文章主要介紹了Springboot如何設(shè)置靜態(tài)資源緩存一年,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11

最新評論

额尔古纳市| 静安区| 隆德县| 航空| 如皋市| 两当县| 通许县| 莎车县| 青冈县| 安乡县| 汽车| 通州区| 齐齐哈尔市| 十堰市| 临颍县| 张家口市| 绵阳市| 罗定市| 东乌珠穆沁旗| 新龙县| 北流市| 漳浦县| 莆田市| 彭阳县| 南康市| 嘉义市| 高安市| 册亨县| 卢湾区| 宜良县| 金湖县| 林州市| 韶关市| 荥经县| 武宁县| 汉沽区| 新田县| 津市市| 远安县| 岑溪市| 日照市|