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

Java網(wǎng)絡編程TCP實現(xiàn)文件上傳功能

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

本文實例為大家分享了Java網(wǎng)絡編程TCP實現(xiàn)文件上傳的具體代碼,供大家參考,具體內(nèi)容如下

上一篇博客,用網(wǎng)絡編程TCP 實現(xiàn)聊天,這次實現(xiàn)文件上傳。

客戶端:

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);
        }

        //通知服務器,我已經(jīng)結(jié)束了
        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();
    }

}

運行結(jié)果:

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

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

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

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

網(wǎng)絡編程實現(xiàn)文件上傳就簡單介紹到這里了!

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

相關文章

  • MybatisPlus字段自動填充失效,填充值為null的解決方案

    MybatisPlus字段自動填充失效,填充值為null的解決方案

    這篇文章主要介紹了MybatisPlus字段自動填充失效,填充值為null的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Springsession nginx反向代理集成過程

    Springsession nginx反向代理集成過程

    這篇文章主要介紹了Springsession nginx反向代理集成過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Lombok 的@StandardException注解解析

    Lombok 的@StandardException注解解析

    @StandardException 是一個實驗性的注解,添加到 Project Lombok 的 v__1.18.22 版本中,在本教程中,我們將使用 Lombok 的 @StandardException 注解自動生成異常類型類的構(gòu)造函數(shù),需要的朋友可以參考下
    2023-05-05
  • Java線程實現(xiàn)的三種方式詳細解析

    Java線程實現(xiàn)的三種方式詳細解析

    這篇文章主要介紹了Java線程實現(xiàn)的三種方式詳細解析,Java多線程實現(xiàn)方式主要有三種,繼承Thread類、實現(xiàn)Runnable接口、使用ExecutorService、Callable、Future實現(xiàn)有返回結(jié)果的多線程,需要的朋友可以參考下
    2023-12-12
  • Java 實戰(zhàn)項目之教材管理系統(tǒng)的實現(xiàn)流程

    Java 實戰(zhàn)項目之教材管理系統(tǒng)的實現(xiàn)流程

    讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實現(xiàn)教材管理系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • 最長重復子數(shù)組 findLength示例詳解

    最長重復子數(shù)組 findLength示例詳解

    今天給大家分享一道比較常問的算法面試題,最長重復子數(shù)組 findLength,文中給大家分享解題思路,結(jié)合示例代碼介紹的非常詳細,需要的朋友參考下吧
    2023-08-08
  • 詳解spring自動掃描包

    詳解spring自動掃描包

    這篇文章主要介紹了spring自動掃描包的相關知識,本文通過實例相結(jié)合的形式給大家介紹的非常詳細,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-06-06
  • 詳解Java的JDBC API中事務的提交和回滾

    詳解Java的JDBC API中事務的提交和回滾

    這篇文章主要介紹了Java的JDBC API中事務的提交和回滾,JDBC是Java用于和數(shù)據(jù)庫軟件連接的API,需要的朋友可以參考下
    2015-12-12
  • mybatis-plus 如何配置邏輯刪除

    mybatis-plus 如何配置邏輯刪除

    這篇文章主要介紹了mybatis-plus 如何配置邏輯刪除,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • MybatisPlus如何調(diào)用count函數(shù)

    MybatisPlus如何調(diào)用count函數(shù)

    這篇文章主要介紹了MybatisPlus如何調(diào)用count函數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論

遵义县| 金沙县| 遂平县| 中山市| 永寿县| 舟山市| 轮台县| 团风县| 阳高县| 南宁市| 三江| 江永县| 抚松县| 玉树县| 青神县| 建平县| 柳州市| 新竹市| 桐乡市| 岱山县| 珲春市| 江陵县| 灌阳县| 浮梁县| 牟定县| 吴堡县| 蓝田县| 新和县| 南康市| 新泰市| 绥宁县| 滕州市| 东方市| 滨州市| 九台市| 深水埗区| 洞头县| 平阴县| 长岛县| 和田县| 德州市|