Réseaux

1. Les sockets

Les sockets vont constituer un moyen de communication à travers les protocoles TCP/IP et UDP. Le fonctionnement repose sur un serveur et un client. Le serveur se met à l’écoute sur un port TCP donné. Le client se met en contact avec un serveur par son adresse IP et son numéro de port. Lorsque les échanges sont terminés, la connexion est fermée (opération close).

a. Le serveur TCP/IP

La classe TCPServer sert à construire le serveur pour une communication TCP/IP. Cette classe est dérivée de la classe TCPSocket. On passe dans le constructeur le numéro de port et éventuellement l’adresse de la machine sur laquelle on écoute (une machine peut avoir plusieurs cartes réseaux). La méthode accept va mettre en attente le serveur, si un client se connecte un objet de type TCPSocket sera créé. Cet objet dérive de la classe IO que nous avons déjà vu pour envoyer et recevoir des données.

Dans l’exemple qui suit, nous réalisons un mini serveur web, écoutant un client sur le port 81 :

require 'socket'

serveur = TCPServer.new( 81 )

client = nil
while ( ( client = serveur.accept ) )
  # Lecture de la requête
  requete = clients.gets

  puts "Client #{client.gets} connecte"
  # Envoi de la réponse
  client.puts( "HTTP/1.0 200 OK" )
  client.puts( "Content-Type:text/html")
  client.puts
  client.puts "<html><body>Hello...
Pour consulter la suite, découvrez le livre suivant :
couv_Ruby.PNG
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Processus
Suivant
Web services