亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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、關(guān)閉資源
        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、關(guān)閉資源
        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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

    關(guān)于application.yml基礎(chǔ)配置以及讀取方式

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