Java 编写程序,用Socket通信机制在服务器端和客户端之间传输文件。具体代码实现
时间: 2024-05-02 07:20:38 浏览: 108
C#高并发SOCKET服务器和客户端完整工程实例源码.zip
5星 · 资源好评率100%
你可以参考以下代码实现:
Server端:
```java
import java.net.*;
import java.io.*;
public class Server{
public static void main(String[] args){
try{
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器启动,等待连接...");
Socket socket = serverSocket.accept();
System.out.println("客户端连接成功!");
// 获取输入流
InputStream is = socket.getInputStream();
// 创建文件输出流
FileOutputStream fos = new FileOutputStream(new File("receive.txt"));
// 创建缓冲区
byte[] buffer = new byte[1024];
int len = 0;
while((len = is.read(buffer)) != -1){
fos.write(buffer, 0, len);
}
// 关闭资源
fos.close();
is.close();
socket.close();
serverSocket.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
```
Client端:
```java
import java.net.*;
import java.io.*;
public class Client{
public static void main(String[] args){
try{
Socket socket = new Socket("localhost", 8888);
System.out.println("连接成功!");
// 创建文件输入流
FileInputStream fis = new FileInputStream(new File("send.txt"));
// 获取输出流
OutputStream os = socket.getOutputStream();
// 创建缓冲区
byte[] buffer = new byte[1024];
int len = 0;
while((len = fis.read(buffer)) != -1){
os.write(buffer, 0, len);
}
// 关闭资源
fis.close();
os.close();
socket.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
```
以上代码实现了在服务器端和客户端之间传输文件。在服务器端启动后,等待客户端的连接,客户端连接成功后,将本地的文件通过流写入到输出流中,服务器端通过输入流读取文件并写入到本地。
阅读全文