java完成 tcp的文件上传服务器的代码(支持多人同时下载的)和客户端的代码
时间: 2023-02-06 22:39:30 浏览: 71
下面是一个简单的 Java TCP 文件上传服务器的例子:
```
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
public static void main(String[] args) throws IOException {
// 监听本地的 9999 端口
ServerSocket serverSocket = new ServerSocket(9999);
System.out.println("服务器启动,等待连接...");
while (true) {
// 接受客户端连接
Socket socket = serverSocket.accept();
System.out.println("客户端已连接:" + socket.getRemoteSocketAddress());
// 获取输入流,读取客户端发送的文件数据
InputStream inputStream = socket.getInputStream();
// 将文件数据写入本地文件
FileOutputStream fileOutputStream = new FileOutputStream("received.jpg");
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, len);
}
fileOutputStream.close();
inputStream.close();
// 关闭连接
socket.close();
}
}
}
```
下面是一个简单的 Java TCP 文件上传客户端的例子:
```
import java.io.*;
import java.net.Socket;
public class TCPClient {
public static void main(String[] args) throws IOException {
// 连接本地的 9999 端口
Socket socket = new Socket("localhost", 9999);
System.out.println("连接到服务器:" + socket.getRemoteSocketAddress());
// 获取输出流,向服务器发送文件数据
OutputStream outputStream = socket.getOutputStream();
FileInputStream fileInputStream = new FileInputStream("test.jpg");
byte[] buffer = new byte[1024];
int len;
while ((len = fileInputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len);
}
fileInputStream.close();
outputStream.close();
// 关闭连接
socket.close();
}
}
```
这个例子中的服务器只能处理单