Triple Eye Industrieel Ingenieur Informatica Algemeen Intranet Vierde jaar Netwerken IV Labo's Sockets
Engelse versie

Opgave 3: FTP-Client.

Opdracht

Je bouwt een (vereenvoudigde) FTP-Client programma.

FTP protocol

De beste manier om het ftp protocol te doorgronden is via de RFC (Request for Comment) nummer 959. Je vindt het document op de officiële website van de RFC Editor.

Je kan ook via Ethereal of Wireshark de paketten bekijken die tijdens een ftp sessie heen en weer worden gestuurd. (Indien geen van beide paketten geïnstalleerd is op je pc, kan je tcpdump gebruiken).

Meer informatie:

Uitwerking

De client moet niet alle commando's ondersteunen. Het volstaat dat de client een bestand kan downloaden van de server in passieve modus. Volgende commando's zijn noodzakelijk:

USER
PASS
LIST
PASV
RETR

Uitleg over de verschillende commando's kan je vinden in de RFC 959 in hoofdstuk 4.1. FTP COMMANDS. De antwoorden die de server stuurt kan je vinden in hoofdstuk 4.2.1 Reply Codes by Function Groups. In de sectie Command-Reply Sequences kan je vinden welke de mogelijke reply's kunnen zijn op een commando.

Indien je het commando PASV naar de server stuurt, dan antwoordt die met een boodschap in volgende vorm:

227 Entering passive mode (193,56,87,123,56,87)
Hiermee geeft de server aan op welk ip adres en op welke poort de client een dataverbinding kan openen. Het is wat prutswerk om die string om te zetten naar de juiste waarden, dus krijg je een reeds geprogrammeerde functie die dit doet.

Je kan je client testen met een bestaande FTP-server, bijvoorbeeld op adres 209.132.176.30 draait de redhat ftp server. De ftppoort waarover commando's gestuurd worden is 21. Voor het inloggen kan je gebruikmaken van de user anonymous.

Indien je een werkende client hebt pas hem dan aan zodat je programma ook werkt wanneer de gebruiker een computernaam opgeeft ipv een ip-adres.

Schrijf je oplossing in c++ en gebruik van volgende headerfiles voor het voorstellen van een TCP-client. Implementeer deze header in TcpClient.cpp. Leid nadien de ftp-client af van deze Tcp-client. Maak voor het ontwikkelen gebruik van Netbeans.

Afgeven

Plaats je oplossing op de U:/-drive in de directory sockets voor maandag 30/11/2009 18u.

Oplossing

Een mogelijke oplossing kan je hier vinden.


K. Van De Wiele 25/11/2009

Welkom | Hogeschool Gent | INWE | Studentenserver | Docentenserver | Intranet