首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何通过套接字发送文件?Java

通过套接字发送文件可以使用Java的Socket和ServerSocket类来实现。下面是一个基本的示例代码:

  1. 服务器端代码:
代码语言:txt
复制
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 Server {
    public static void main(String[] args) {
        try {
            // 创建ServerSocket对象,指定端口号
            ServerSocket serverSocket = new ServerSocket(8888);
            System.out.println("服务器已启动,等待客户端连接...");

            // 监听客户端的连接请求
            Socket socket = serverSocket.accept();
            System.out.println("客户端已连接,开始接收文件...");

            // 创建输入流,用于接收客户端发送的文件数据
            BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());

            // 创建文件输出流,用于将接收的文件数据写入磁盘
            FileOutputStream fos = new FileOutputStream("received_file.txt");
            BufferedOutputStream bos = new BufferedOutputStream(fos);

            // 创建缓冲区
            byte[] buffer = new byte[1024];
            int bytesRead;
            // 从输入流中读取数据,并写入输出流
            while ((bytesRead = bis.read(buffer)) != -1) {
                bos.write(buffer, 0, bytesRead);
            }

            // 关闭流
            bos.close();
            bis.close();
            socket.close();
            serverSocket.close();

            System.out.println("文件接收完成!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
  1. 客户端代码:
代码语言:txt
复制
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.Socket;

public class Client {
    public static void main(String[] args) {
        try {
            // 创建Socket对象,指定服务器的IP地址和端口号
            Socket socket = new Socket("服务器IP地址", 8888);
            System.out.println("已连接服务器,开始发送文件...");

            // 创建文件输入流,用于读取本地文件数据
            FileInputStream fis = new FileInputStream("file_to_send.txt");
            BufferedInputStream bis = new BufferedInputStream(fis);

            // 创建输出流,用于向服务器发送文件数据
            BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());

            // 创建缓冲区
            byte[] buffer = new byte[1024];
            int bytesRead;
            // 从输入流中读取数据,并写入输出流
            while ((bytesRead = bis.read(buffer)) != -1) {
                bos.write(buffer, 0, bytesRead);
            }

            // 关闭流
            bos.flush();
            bis.close();
            socket.close();

            System.out.println("文件发送完成!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

以上代码是一个简单的文件传输示例,服务器端监听指定端口,客户端连接服务器并发送文件数据。你可以根据实际需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

共50个视频
动力节点-【CRM客户管理系统】SSM框架项目实战教程-1
动力节点Java培训
这套教程是动力节点最新录制的CRM项目,课程主要针对核心的客户关系管理业务功能进行实现,让你能够深层掌握主流SSM框架、Linux操作系统下部署项目、数据库设计原则和技巧、数据如何通过图表在页面展示、Java对excel文件的处理,学会使用项目管理工具Maven、版本控制工具Git,以及缓存在项目中的运用熟悉前端开发技术及常见的特效等。 通过课程可以了解项目开发流程及项目开发各阶段主要文档及产出物
共50个视频
动力节点-【CRM客户管理系统】SSM框架项目实战教程-2
动力节点Java培训
这套教程是动力节点最新录制的CRM项目,课程主要针对核心的客户关系管理业务功能进行实现,让你能够深层掌握主流SSM框架、Linux操作系统下部署项目、数据库设计原则和技巧、数据如何通过图表在页面展示、Java对excel文件的处理,学会使用项目管理工具Maven、版本控制工具Git,以及缓存在项目中的运用熟悉前端开发技术及常见的特效等。 通过课程可以了解项目开发流程及项目开发各阶段主要文档及产出物
共50个视频
动力节点-【CRM客户管理系统】SSM框架项目实战教程-3
动力节点Java培训
这套教程是动力节点最新录制的CRM项目,课程主要针对核心的客户关系管理业务功能进行实现,让你能够深层掌握主流SSM框架、Linux操作系统下部署项目、数据库设计原则和技巧、数据如何通过图表在页面展示、Java对excel文件的处理,学会使用项目管理工具Maven、版本控制工具Git,以及缓存在项目中的运用熟悉前端开发技术及常见的特效等。 通过课程可以了解项目开发流程及项目开发各阶段主要文档及产出物
共18个视频
动力节点-【CRM客户管理系统】SSM框架项目实战教程-4
动力节点Java培训
这套教程是动力节点最新录制的CRM项目,课程主要针对核心的客户关系管理业务功能进行实现,让你能够深层掌握主流SSM框架、Linux操作系统下部署项目、数据库设计原则和技巧、数据如何通过图表在页面展示、Java对excel文件的处理,学会使用项目管理工具Maven、版本控制工具Git,以及缓存在项目中的运用熟悉前端开发技术及常见的特效等。 通过课程可以了解项目开发流程及项目开发各阶段主要文档及产出物
共50个视频
MySQL数据库从入门到精通(外加34道作业题)(上)
动力节点Java培训
本套是MySQL数据库视频教程是动力节点教学总监杜老师讲述,其中详细讲解了MySQL的相关知识,包括MySQL概述,MySQL应用环境,MySQL系统特性,MySQL初学基础,MySQL管理工具,如何安装MySQL及MySQL新特性,通过观看本套Java视频教程就可掌握MySQL全套知识。
共45个视频
MySQL数据库从入门到精通(外加34道作业题)(下)
动力节点Java培训
本套是MySQL数据库视频教程是动力节点教学总监杜老师讲述,其中详细讲解了MySQL的相关知识,包括MySQL概述,MySQL应用环境,MySQL系统特性,MySQL初学基础,MySQL管理工具,如何安装MySQL及MySQL新特性,通过观看本套Java视频教程就可掌握MySQL全套知识。
领券