Java 通过套接字发送和接收文件(byte[])

作者:编程家 分类: java 时间:2025-12-11

在Java中,通过套接字发送和接收文件是一项非常常见和有用的任务。通过使用套接字,我们可以在网络上的不同设备之间传输二进制文件数据。本文将介绍如何使用Java套接字发送和接收文件的方法,并提供一个案例代码来演示这个过程。

使用套接字发送文件

首先,我们需要创建一个服务器端和一个客户端来进行文件的发送和接收。在服务器端,我们需要创建一个套接字并绑定到一个特定的端口上,以便客户端可以连接到它。在客户端,我们需要创建一个套接字并连接到服务器的IP地址和端口。

一旦连接建立,我们可以使用套接字的输入和输出流来发送和接收文件数据。在服务器端,我们可以使用文件输入流来读取文件的内容,并使用套接字的输出流将文件数据发送给客户端。在客户端,我们可以使用套接字的输入流来接收服务器发送的文件数据,并使用文件输出流将接收到的数据写入磁盘上的文件。

下面是一个简单的示例代码,演示了如何使用套接字发送文件:

java

// 服务器端

ServerSocket serverSocket = new ServerSocket(8080);

Socket socket = serverSocket.accept();

File file = new File("path/to/file");

byte[] fileData = new byte[(int) file.length()];

FileInputStream fis = new FileInputStream(file);

fis.read(fileData);

OutputStream os = socket.getOutputStream();

os.write(fileData);

socket.close();

serverSocket.close();

// 客户端

Socket socket = new Socket("serverIP", 8080);

byte[] fileData = new byte[1024];

InputStream is = socket.getInputStream();

FileOutputStream fos = new FileOutputStream("path/to/save/file");

int bytesRead;

while ((bytesRead = is.read(fileData)) != -1) {

fos.write(fileData, 0, bytesRead);

}

socket.close();

使用套接字接收文件

在上面的示例代码中,服务器端首先创建一个ServerSocket对象,并将其绑定到端口8080上。然后,它等待客户端的连接请求,并使用accept()方法接受连接。接下来,服务器端打开要发送的文件,并将文件内容读取到一个字节数组中。然后,它使用套接字的输出流将文件数据发送给客户端。最后,服务器端关闭套接字和ServerSocket。

在客户端代码中,首先创建一个Socket对象,并连接到服务器的IP地址和端口。然后,客户端创建一个字节数组,用于接收从服务器发送的文件数据。使用套接字的输入流,客户端循环读取从服务器接收的数据,并将数据写入磁盘上的文件中。最后,客户端关闭套接字。

通过使用Java套接字,我们可以轻松地在网络上发送和接收文件数据。本文介绍了如何使用套接字发送和接收文件的方法,并提供了一个简单的示例代码。希望这篇文章对你理解和使用Java套接字发送和接收文件有所帮助。

希望本文对你了解和使用Java套接字发送和接收文件有所帮助。