我需要java的代码:设计一个基于TCP的文件上传功能,将文件从客户端上传到指定服务器。 进阶设计:文件传输完成后服务器给客户端发送“文件上传成功”的信息。
时间: 2024-03-11 07:51:37 浏览: 57
基于JAVA实现的局域网的聊天室系统毕业设计(源代码+论文)
以下是基于TCP的文件上传功能的Java代码,包括进阶设计:
客户端代码:
```java
import java.io.*;
import java.net.*;
public class FileClient {
public static void main(String[] args) throws Exception {
Socket socket = new Socket("localhost", 8888);
OutputStream out = socket.getOutputStream();
FileInputStream fileIn = new FileInputStream("文件路径");
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fileIn.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
socket.shutdownOutput();
InputStream in = socket.getInputStream();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] bytes = new byte[1024];
int len2 = 0;
while ((len2 = in.read(bytes)) != -1) {
byteArrayOutputStream.write(bytes, 0, len2);
}
System.out.println(byteArrayOutputStream.toString());
in.close();
byteArrayOutputStream.close();
fileIn.close();
out.close();
socket.close();
}
}
```
服务器端代码:
```java
import java.io.*;
import java.net.*;
public class FileServer {
public static void main(String[] args) throws Exception {
ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
InputStream in = socket.getInputStream();
FileOutputStream fileOut = new FileOutputStream("文件路径");
byte[] buffer = new byte[1024];
int len = 0;
while ((len = in.read(buffer)) != -1) {
fileOut.write(buffer, 0, len);
}
OutputStream out = socket.getOutputStream();
out.write("文件上传成功".getBytes());
out.close();
fileOut.close();
in.close();
socket.close();
serverSocket.close();
}
}
```
其中,客户端需要将"文件路径"替换为实际文件的路径。服务器端需要将"文件路径"替换为文件存储的路径。
在文件传输完成后,服务器会给客户端发送"文件上传成功"的信息。客户端可以通过输入流获取这个信息并输出。
阅读全文