Technologies internet
Interaction client-serveur à l'aide des connexions par sockets de flux
Fichiers auxiliares :
jupiter% java NetworkClientTest 132.213.1.47 21
Generic Network Client:
Made connection to 132.213.1.47 and got
'220 tethys FTP server (SunOS 5.8) ready.' in response
jupiter% java NetworkClientTest ftp.netscape.com 21
Generic Network Client:
Made connection to ftp.netscape.com and got
'220 ftp15.newaol.com FTP server ready.' in response
Pour implémenter un client:
- créer un socket
- créer un "output stream" qui sera utilisé pour écrire
des informations dans le socket
- créer un "input stream" qui sera utilisé pour lire
la réponse du serveur
- faire E/S avec "input et output streams"
- fermer le socket
Pour implémenter un serveur:
- créer un objet ServerSocket
- créer un objet Socket à partie de l'objet ServerSocket
- créer un "input stream" qui sera utilisé pour lire
les données du client
- créer un "output stream" qui sera utilisé pour écrire
au client
- faire E/S avec "input et output streams"
- fermer le socket
Pour établir une connexion entre le serveur et le client:
Moment t1, jupiter:
jupiter% java NetworkServerTest 6666
Moment t2, tethys:
tethys% java NetworkClientTest 132.213.1.27 6666
Moment t3, jupiter:
Generic Network Server:
got connection from tethys
with first line 'Generic Network Client'
Moment t4, tethys:
Generic Network Client:
Made connection to 132.213.1.27 and got 'Generic Network Server' in response
Interaction client-serveur à l'aide des connexions par sockets de flux
Un autre exemple:
Fichiers auxiliares:
- Quand une application client se connecte au serveur, l'application
du serveur envoie au client un objet String indiquant que la connexion a
été établie avec succès et le client affiche ensuite le message.
- Quand le client ou le serveur envoie la chaîne "TERMINER", la connexion
entre le client et le serveur s'interrompt. Le serveur attend ensuite que le
client suivant se connecte.
- La méthode lancerServeur s'occupe du travail de préparation du
serveur à recevoir une connexion et à traiter la connexion lorsqu'elle
s'installe.
- Elle crée un ServerSocket dénommé serveur placé en attente
de connexions.
- Le ServerSocket est réglé pour écouter les éventuelles connexions
de clients sur le port 5000. Le second argument du constructeur est le
nombre de clients susceptibles d'attendre dans une queue de se connecter
au serveur. Le serveur refuse une connexion supplémentaire si la queue
est pleine.
- Notez que le serveur reçoit une connexion, traite la connexion, ferme
la connexion et attend la connexion suivante. Un scénario plus vraisemblable
serait que le serveur qui reçoit une connexion mette en place le
traitement de cette connexion dans un thread d'exécution distinct, puis
se mette en attente de nouvelles connexions.
- La méthode setConnecteurAuServeur (client) crée un Socket
dénommé client pour établir une connexion. Elle transmet deux
arguments au constructeur de Socket: l'adresse Internet du serveur
et le numéro du port (5000).
Si l'adresse Internet n'est pas spécifié à la ligne de commande,
setConnecteurAuServeur utilisera l'adresse 127.0.0.1 qui est
équivalente à "localhost".