TFTP : Trivial File Transfert Program.

Présentation.

On propose ici de réaliser un programme de transfert de fichier texte via le réseau à l'aide d'une implémentation type client/serveur utilisant les sockets. On dispose de deux postes (1 poste serveur en mode réception et 1 autre poste client en mode envoi.

Proglet exemple (version serveur et version client).

Voici un exemple minimal qui permet de tester cette proglet. Attention, il faut lancer la version serveur en premier, puis la version client. Ici les deux proglets peuvent être lancés sur la même machine.Dans ce cas, il vous faut lancer deux fois la proglet txtCode sur l'ordinateur en chargeant dans l'une la version serveur ci-dessous et dans l'autre la version client.

Code source des programmes de test.

Version serveur.

void main() {
    int i,j;
    String str;
    ....
    openSocketServer(6000);
    str=getMessageViaSocketServer();
    .... écriture dans le fichier de reception
    closeSocketServer();
    ....
}

Version client.

void main() {
    int i,j;
    String str;
    openSocketClient("127.0.0.1",6000);
    ....
    sendMessageViaSocketClient(str);
    ....
    closeSocketClient();
}

Principes de fonctionnement.

remarques:.

Liste des fonctions à disposition.

Gestion de la communication réseau via les sockets.

Au niveau communication TCP/IP on dispose d'une fonction d'initialisation du port (via une "socket"), d'une fonction de lecture, d'une fonction d'écriture et enfin d'une fonction de libération de la connection. Chacune de ses fonctions est déclinée en version serveur et en version client.
openSocketServer(int numport)
Initialisation du socket server, il écoute sur le port spécifié.Cette fonction tourne true si tout c'est bien passé false dans le cas contraire.
getMessageViaSocketServer()
Retourne un message (type String) lu sur le socket server. Message en provenance du client.
sendMessageViaSocketServer(String text)
Permet d'écrire un message sur le socket server. Message à destination du client.
closeSocketServer()
Fermeture du socket server. Cette fonction retourne true si tout c'est bien passé false dans le cas contraire.
openSocketClient(String serverName, int numport)
Initialisation socket client vers server spécifié (Nom et numéro de port) Cette fonction retourne true si tout c'est bien passé false dans le cas contraire.
sendMessageViaSocketClient(String text)
Permet d'envoyer un message via le socket client vers le serveur.
getMessageViaSocketClient()
Retourne un message (type String) lu sur le socket client, message en provenance du serveur.
closeSocketClient()
Fermeture du socket client. Cette fonction retourne true si tout c'est bien passé false dans le cas contraire.