大家好,我是京久。
进行Java学习需要实操。所以编写一个简单的FTP服务器。
目的
- 实现一个简单的FTP服务器客户端和服务器端程序,训练Socket,I/O编程技术,进一步巩固和提升应用开发技能。
- 熟悉Java代码编写规范。
使用设备及环境
设备:MacBook Pro(M1)
软件:eclipse
JDK:15.0.2
功能
- 文件上传
- 文件下载
方案设计
- 编写服务器端代码
- 编写客户端代码
- 编写工具类代码
代码实现
服务器端
//import已省略
public class FTPServer {
private static String serverDir = "xxxx";//设置服务器端地址
public static void main(String[] args) {
System.out.println("========服务器已启动========");
try {
ServerSocket ss = new ServerSocket(5464);//端口号使用jing9键全拼
Socket s = ss.accept();
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
DataInputStream dis = new DataInputStream(s.getInputStream());
//处理用户指令
String command;
while(true) {
command = dis.readUTF();
if(command.startsWith("put ")) {
receive(command.substring(4),dis);
}else if(command.startsWith("get ")) {
send(command.substring(4),dos);
}else if(command.startsWith("disconnect ")) {
break;
}
}
dis.close();
dos.close();
s.close();
ss.close();
System.out.println("======服务器已退出======");
} catch (IOException e) {
e.printStackTrace();
}
}
public static void receive(String fn