java socket 文件传输 代码示例

jsonjiaocheng

温馨提示:这篇文章已超过287天没有更新,请注意相关的内容是否还可用!

java socket 文件传输 代码示例

Java中的Socket类提供了一种简单而有效的方式来进行网络通信。它可以用于在客户端和服务器之间传输数据。在文件传输方面,可以使用Socket类来实现文件的发送和接收。

我们需要创建一个服务器端和一个客户端。服务器端负责监听客户端的连接请求,并接收文件。客户端负责连接服务器并发送文件。

服务器端代码示例:

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.ServerSocket;

import java.net.Socket;

public class Server {

public static void main(String[] args) {

try {

ServerSocket serverSocket = new ServerSocket(12345);

System.out.println("服务器启动,等待客户端连接...");

Socket socket = serverSocket.accept();

System.out.println("客户端连接成功!");

InputStream inputStream = socket.getInputStream();

FileOutputStream fileOutputStream = new FileOutputStream("received_file.txt");

byte[] buffer = new byte[1024];

int bytesRead;

while ((bytesRead = inputStream.read(buffer)) != -1) {

fileOutputStream.write(buffer, 0, bytesRead);

}

fileOutputStream.close();

inputStream.close();

socket.close();

serverSocket.close();

System.out.println("文件接收成功!");

} catch (IOException e) {

e.printStackTrace();

}

}

}

在这个例子中,我们创建了一个ServerSocket对象来监听指定端口(这里使用12345)。一旦有客户端连接,我们就接受连接并获取到输入流。然后,我们创建一个FileOutputStream对象来写入接收到的文件内容。通过循环读取输入流中的数据,并将其写入文件输出流中,直到读取完毕。我们关闭所有的流和套接字。

客户端代码示例:

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.OutputStream;

import java.net.Socket;

public class Client {

public static void main(String[] args) {

try {

Socket socket = new Socket("localhost", 12345);

System.out.println("连接服务器成功!");

File file = new File("file_to_send.txt");

FileInputStream fileInputStream = new FileInputStream(file);

OutputStream outputStream = socket.getOutputStream();

byte[] buffer = new byte[1024];

int bytesRead;

while ((bytesRead = fileInputStream.read(buffer)) != -1) {

outputStream.write(buffer, 0, bytesRead);

}

fileInputStream.close();

outputStream.close();

socket.close();

System.out.println("文件发送成功!");

} catch (IOException e) {

e.printStackTrace();

}

}

}

在这个例子中,我们创建了一个Socket对象并连接到指定的服务器地址和端口(这里使用localhost和12345)。然后,我们创建一个FileInputStream对象来读取要发送的文件内容。接下来,我们获取到输出流,并通过循环读取文件内容,并将其写入输出流中,直到读取完毕。我们关闭所有的流和套接字。

这样,我们就完成了基于Java Socket的文件传输。服务器端接收到客户端发送的文件,并保存到本地;客户端将本地文件发送给服务器端。通过Socket类的输入输出流,我们可以方便地实现文件传输的功能。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码