使用字节流从客户端发送视频文件到服务端,服务端通知客户端文件上传完毕

1.案例需求

使用字节流从客户端发送视频文件到服务端,服务端通知客户端文件上传完毕

2.编程思路

  1. 客户端
  • 打开视频文件:使用FileInputStream打开要发送的视频文件。
  • 建立网络连接:创建一个Socket对象,连接到服务端的指定IP地址和端口。
  • 发送文件数据:将FileInputStream包装在BufferedInputStream中以提高效率。
  • 读取视频文件的内容,并通过Socket的getOutputStream()方法写入到网络流中。可以使用一个循环来持续读取文件内容,直到文件末尾(即read()方法返回-1)。
  • 等待服务端响应:发送完文件后,客户端可以通过Socket的getInputStream()读取服务端的响应,确认文件是否接收成功。
  • 关闭资源:关闭FileInputStream、BufferedInputStream和Socket,释放资源。
  1. 服务端
  • 监听网络连接:使用ServerSocket在指定端口上监听客户端的连接请求。
  • 接受客户端连接:当客户端连接时,ServerSocket的accept()方法会返回一个Socket对象,用于与客户端通信。
  • 接收文件数据:通过Socket的getInputStream()获取输入流,并将其包装在BufferedInputStream中以提高读取效率。创建一个FileOutputStream用于将接收到的数据写入到本地文件系统中。读取输入流中的数据,并写入到FileOutputStream中,直到输入流结束。
  • 文件接收完毕处理:当文件接收完毕后,可以执行一些后处理操作,如校验文件完整性等。
  • 通知客户端:通过Socket的getOutputStream()发送一个确认消息给客户端,表明文件已成功接收。这个消息可以是一个简单的字符串,如"服务端文件接收成功"。
  • 关闭资源:关闭Socket、FileInputStream(如果有的话,实际上在服务端这里应该是FileOutputStream)、和任何其他打开的流资源。

3.案例源码

服务端源码:

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;


public class Serve {
   
    public static void main(String[] args) throws IOException {
   
        ServerSocket serve = new ServerSocket(7835);
        System.out.println("服务器已开启,等待连接...");
        Socket client = serve.accept()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值