温馨提示:这篇文章已超过239天没有更新,请注意相关的内容是否还可用!
Java中的Socket类是一种用于实现网络通信的机制,它可以在不同的主机之间传输数据。在传输大文件时,我们可以使用Java Socket来进行连续传输,确保文件在传输过程中不会丢失或损坏。
我们需要创建一个服务器端和一个客户端来进行文件传输。服务器端负责接收客户端发送的文件数据,并将其保存到本地磁盘上。客户端负责读取本地文件,并将文件数据发送给服务器端。
在服务器端,我们首先需要创建一个ServerSocket对象,并指定一个端口号。然后,我们可以使用accept()方法来等待客户端的连接请求,并返回一个Socket对象,用于与客户端进行通信。接下来,我们可以使用InputStream和OutputStream来读取和写入数据。
示例代码如下:
// 服务器端
ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
FileOutputStream fileOutputStream = new FileOutputStream("output.txt");
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, bytesRead);
}
fileOutputStream.close();
socket.close();
serverSocket.close();
在客户端,我们首先需要创建一个Socket对象,并指定服务器的IP地址和端口号。然后,我们可以使用InputStream和OutputStream来读取和写入数据。我们可以打开本地文件,并使用InputStream将文件数据读取到缓冲区中,然后使用OutputStream将缓冲区中的数据发送给服务器端。
示例代码如下:
// 客户端
Socket socket = new Socket("localhost", 8888);
File file = new File("input.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();
socket.close();
通过以上代码示例,我们可以看到服务器端和客户端分别使用了InputStream和OutputStream来读取和写入数据,实现了文件的连续传输。