TCP之文件上传与下载

Posted kuris101

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP之文件上传与下载相关的知识,希望对你有一定的参考价值。

TCP文件上传下载

客户端

  1. 创建socket连接
  2. 创建输出流
  3. 读取文件
  4. 写出文件
  5. 关闭资源
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;

public class TCPClientFile {
    public static void main(String[] args) throws Exception{
        //1.创建socket连接
        Socket socket = new Socket(InetAddress.getByName("127.0.0.1"),9000);
        //2.创建输出流
        OutputStream os = socket.getOutputStream();
        //3.读取文件
        FileInputStream fileInputStream = new FileInputStream(new File("D:\Code\JavaStudy\src\zhengjianzhao.jpg"));
        //4.写出文件
        byte[] buffer = new byte[1024];
        int len;
        while((len=fileInputStream.read(buffer))!=-1){
            os.write(buffer,0,len);
        }
        //5.关闭资源
        fileInputStream.close();
        os.close();
        socket.close();

    }
}

服务端

  1. 创建服务
  2. 等待连接
  3. 获取输入流
  4. 文件输出
  5. 关闭资源
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.File;

public class TCPServerFile {
    public static void main(String[] args) throws Exception{
        //1.创建服务
        ServerSocket serverSocket = new ServerSocket(9000);
        //2.等待连接
        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);
        }
        //5.关闭资源
        fos.close();
        is.close();
        socket.close();
        serverSocket.close();
    }
}

执行结果:服务端接受到客户端发送的文件

以上是关于TCP之文件上传与下载的主要内容,如果未能解决你的问题,请参考以下文章

性能工具之 JMeter 上传与下载脚本编写

TCP简单实现文件上传与下载

在 Go 中使用 HTTP 与使用 TCP 套接字将文件下载/上传到服务器有啥优势? [关闭]

JavaWeb之实现文件上传与下载

iOS多线程与网络开发之小文件上传

Nancy之文件上传与下载