使用java socket技术下载服务端文件到客户端
时间: 2023-10-07 20:13:27 浏览: 111
要使用Java Socket技术从服务端下载文件到客户端,可以按照以下步骤进行:
1. 在服务端创建一个ServerSocket,等待客户端连接。
2. 当客户端连接到服务端时,服务端创建一个FileInputStream对象,读取要下载的文件,然后通过Socket的OutputStream将文件内容发送给客户端。
3. 在客户端创建一个Socket,连接到服务端。连接成功后,客户端创建一个FileOutputStream对象,用于保存从服务端接收到的文件内容。
4. 客户端通过Socket的InputStream接收服务端发送过来的文件内容,并将文件内容写入到FileOutputStream对象中。
以下是一个简单的示例代码,演示如何使用Java Socket技术从服务端下载文件到客户端:
服务端代码:
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(5555);
System.out.println("Server started, waiting for client...");
Socket socket = serverSocket.accept();
System.out.println("Client connected");
File file = new File("example.txt");
FileInputStream fis = new FileInputStream(file);
OutputStream os = socket.getOutputStream();
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
os.write(buffer, 0, bytesRead);
}
fis.close();
os.close();
socket.close();
serverSocket.close();
System.out.println("File sent to client");
}
}
```
客户端代码:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 5555);
System.out.println("Connected to server");
InputStream is = socket.getInputStream();
FileOutputStream fos = new FileOutputStream("example.txt");
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = is.read(buffer)) != -1) {
fos.write(buffer, 0, bytesRead);
}
fos.close();
is.close();
socket.close();
System.out.println("File received from server");
}
}
```
这个示例程序将服务端的"example.txt"文件发送给客户端,客户端接收到文件后保存到本地。在实际使用中,需要根据实际情况修改代码。
阅读全文