欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java網絡編程TCP實現文件上傳功能

 更新時間:2021年07月04日 11:13:11   作者:跑起來要帶風!  
這篇文章主要為大家詳細介紹了Java網絡編程TCP實現文件上傳功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Java網絡編程TCP實現文件上傳的具體代碼,供大家參考,具體內容如下

上一篇博客,用網絡編程TCP 實現聊天,這次實現文件上傳。

客戶端:

package com.kuang.lesson02;

import java.io.*;
import java.net.InetAddress;
import java.net.Socket;

//客戶端
public class TcpClientDemo2 {
    public static void main(String[] args) throws Exception {
        //1、創(chuàng)建一個Socket連接
        Socket socket = new Socket(InetAddress.getByName("127.0.0.1"),9000);
        //2、創(chuàng)建一個輸出流
        OutputStream os = socket.getOutputStream();
        //3、讀取文件
        FileInputStream fis = new FileInputStream(new File("sendFile.jpg"));
        //4、寫出文件
        byte[] buffer = new byte[1024];
        int len;
        while ((len=fis.read(buffer))!=-1) {
            os.write(buffer,0,len);
        }

        //通知服務器,我已經結束了
        socket.shutdownOutput();

        //確定服務器接收完畢,才能斷開連接
        InputStream inputStream = socket.getInputStream();
        //String byte[]
        ByteArrayOutputStream baos = new ByteArrayOutputStream();

        byte[] buffer2 = new byte[1024];
        int len2;
        while ((len2=inputStream.read(buffer2))!=-1) {
            baos.write(buffer2,0,len2);
        }

        System.out.println(baos.toString());


        //5、關閉資源
        fis.close();
        os.close();
        socket.close();
    }
}

服務端:

package com.kuang.lesson02;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

//服務端
public class TcpServerDemo02 {
    public static void main(String[] args) throws Exception {
        //1、創(chuàng)建服務
        ServerSocket serverSocket = new ServerSocket(9000);
        //2、監(jiān)聽客戶端的連接
        //阻塞式監(jiān)聽,會一直等待客戶端連接
        Socket socket = serverSocket.accept();
        //3、獲取輸入流
        InputStream is = socket.getInputStream();
        //4、文件輸出
        FileOutputStream fos = new FileOutputStream(new File("receive.jpg"));
        byte[] buffer = new byte[1024];
        int len;
        while ((len=is.read(buffer))!=-1) {
            fos.write(buffer,0,len);
        }

        //通知客戶端我接收完畢
        OutputStream os = socket.getOutputStream();
        os.write("我接收完畢了,你可以斷開了".getBytes());

        //5、關閉資源
        fos.close();
        is.close();
        socket.close();
        serverSocket.close();
    }

}

運行結果:

1、首先可以發(fā)現目錄下只有要上傳的文件sendFile.jsp

2、運行服務端,創(chuàng)建服務,可以發(fā)現一直在運行

3、運行客戶端,文件上傳,可以發(fā)現目錄下多了個上傳到服務端的文件receive.jpg,同時接收到了服務端發(fā)送來的消息。

4、打開兩個文件,可以發(fā)現相同

網絡編程實現文件上傳就簡單介紹到這里了!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java設計模式筆記之Builder模式

    Java設計模式筆記之Builder模式

    建造者模式是日常開發(fā)中比較常見的設計模式,它的主要作用就是將復雜事物創(chuàng)建的過程抽象出來,該抽象的不同實現方式不同,創(chuàng)建出的對象也不同,這篇文章主要給大家介紹了關于Java設計模式筆記之Builder模式的相關資料,需要的朋友可以參考下
    2022-03-03
  • Mybatis-plus批量插入的2種方式總結

    Mybatis-plus批量插入的2種方式總結

    這篇文章主要給大家總結介紹了關于Mybatis-plus批量插入的2種方式,Mybatis-Plus提供了多種方式進行批量插入優(yōu)化,文中通過代碼示例將實現的方法介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • Maven如何解決添加依賴之后沒有加載jar包報錯問題

    Maven如何解決添加依賴之后沒有加載jar包報錯問題

    這篇文章主要介紹了Maven如何解決添加依賴之后沒有加載jar包報錯問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java使用UDP實現多人聊天功能

    java使用UDP實現多人聊天功能

    這篇文章主要為大家詳細介紹了java使用UDP實現多人聊天功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java?方法(方法的定義,可變參數,參數的傳遞問題,方法重載,方法簽名)

    Java?方法(方法的定義,可變參數,參數的傳遞問題,方法重載,方法簽名)

    這篇文章主要介紹了Java?方法(方法的定義,可變參數,參數的傳遞問題,方法重載,方法簽名),文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-09-09
  • SpringBoot整合JavaMail郵件的兩種方式

    SpringBoot整合JavaMail郵件的兩種方式

    這篇文章主要介紹了SpringBoot整合JavaMail郵件的兩種方式,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • Servlet獲取AJAX POST請求中參數以form data和request payload形式傳輸的方法

    Servlet獲取AJAX POST請求中參數以form data和request payload形式傳輸的方法

    這篇文章主要介紹了Servlet獲取AJAX POST請求中參數以form data和request payload形式傳輸的方法,結合實例形式詳細分析了post數據發(fā)送及獲取請求數據的原理與相關操作注意事項,需要的朋友可以參考下
    2017-11-11
  • 快速使用IDEA圖形化界面連接Phoenix的方法

    快速使用IDEA圖形化界面連接Phoenix的方法

    最近很多朋友跟小編留言如何使用IDEA圖形化界面連接Phoenix,在這小編就不一一回復大家了,今天抽空給大家整理一篇教程關于idea 圖形化界面連接Phoenix的相關知識,需要的朋友快來學習下吧
    2021-05-05
  • 詳解MyBatis如何在大數據量下使用流式查詢進行數據同步

    詳解MyBatis如何在大數據量下使用流式查詢進行數據同步

    通常的數據同步中,如果數據量比較少的話可以直接全量同步,但是如果數據量很大的話,全量同步需要大量的內存,所以本文為大家介紹了MyBatis使用流式查詢實現數據同步的方法,希望對大家有所幫助
    2023-05-05
  • 關于application.yml基礎配置以及讀取方式

    關于application.yml基礎配置以及讀取方式

    這篇文章主要介紹了關于application.yml基礎配置以及讀取方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論