next up previous contents index
Next: Communication entre agents par Up: Patterns Previous: Persistance et sérialisation

Les flots et l'Internet

 

L'accès à des ressources sur le World Wide Web, ou plus généralement, sur l'Internet, s'intègre naturellement dans le modèle des flots. Voici deux exemples de connexion d'un programme à un service Internet.

Le programme suivant connecte un flot d'entrée à une ressource Web spécifiée par son URL, transforme ce flot d'octets en un flot de caractères et le place dans un tampon ; les lignes successivement lues sur ce flot d'entrée sont copiées sur la sortie standard du programme (jusqu'à ce que readLine() retourne null).

import java.net.URL;
import java.net.MalformedURLException;
import java.io.*;

class URLReader {
  public static void main(String[] args) 
    throws MalformedURLException, IOException {
    URL url = new URL("http://www.enpc.fr/");
    BufferedReader in = 
      new BufferedReader(
        new InputStreamReader(
          url.openStream()));
    String ligne;
    
    while ((ligne = in.readLine()) != null)
      System.out.println(ligne);
    
    in.close();
  }
}

Le programme suivant connecte un flot d'entrée à un port Internet spécifié par un nom de machine et un numéro de port ; ce numéro, 13, est celui d'un serveur dont la réponse est une ligne contenant la date et l'heure courante ; la connexion à ce port utilise le protocole TCP. Ce flot d'entrée est ensuite transformé en un flot de caractères, puis placé dans un tampon ; la ligne lue sur ce flot d'entrée est simplement copiée sur la sortie standard du programme.

import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;

class DateReader {
  public static void main(String[] args) 
    throws UnknownHostException, IOException {
    
    String nomHote = args.length>0 ? args[0] : "localhost";
    Socket s = new Socket(nomHote, 13);
    BufferedReader reponse = 
        new BufferedReader(
          new InputStreamReader(
            s.getInputStream()));
    String date = reponse.readLine();
    System.out.println(nomHote + " : " + date);
    reponse.close();
    s.close();
  }
}


next up previous contents index
Next: Communication entre agents par Up: Patterns Previous: Persistance et sérialisation
R. Lalement
2000-10-23