Jialong Wu
FTP socket programming for BOTH client and server.
Course project for Computer Networks, instructed by Prof. Yang.
For details, please see my report (in Chinese).
The server is implemented using C and Berkeley Socket API, supporting:
- FTP services on specified ports and directories
- Multiple clients to connect simultaneously without blocking
- Totally 19 FTP commands:
USER, PASS, RETR, STOR, QUIT, SYST, TYPE, PORT, PASV, MKD, CWD, PWD, LIST, RMD, RNFR, RNTO, REST, DELE
- Large file transmission
- Resume transmission from breakpoint, for both upload and download
- Connected and normally used by the following own implementation of FTP clients
Linux
Enter the directory server
, run:
make serve
sudo ./server -port [port] -root [root]
The default value is 21
for port
and \tmp
for root
.
The client is implemented using Python and PyQt5 for GUI, supporting:
- FTP commands:
USER, PASS, RETR, STOR, QUIT, SYST, TYPE, PORT, PASV, MKD, CWD, PWD, LIST, RMD, RNFR, RNTO, REST, DELE
- Connecting to and normally served by the above own implementation of FTP servers and vsftp servers
- Large file transmission
- Resume transmission from breakpoint, for both upload and download
- File transmission without blocking the server
PyQt5
Enter the directory client
, run:
python client.py
We would like to thank Prof. Yang and TAs for their devotion to the course Computer Networks.