18. Les connexions réseau TCP/IP - la classe Socket

Avec Java, il est très facile d'ouvrir une connexion TCP/IP depuis une applet ou une application. La classe Socket fournit tous les outils nécessaires à cela. Une fois qu'une connexion est réalisée avec une autre machine, on a accès à un flux d'entrée et un flux de sortie, comme si l'on travaillait avec un fichier.

Exemple

import java.io.*;
import java.net.*;

public class jnetcat {

    public static void main(String args[]) {
        if (args.length != 2)
            System.out.println("usage : jnetcat hote port");
        else {
            Socket sk = null;
            try {
                sk = new Socket(args[0],Integer.valueOf(args[1]).intValue());
                DataInputStream is = new DataInputStream(sk.getInputStream());
                String ligne;
                while ((ligne = is.readLine()) !=  null)
                    System.out.println(ligne);
            } catch (UnknownHostException e) {
                System.out.println("hote inconnu : "+e.getMessage());
            } catch (IOException e) {
                System.out.println("erreur entree/sortie : "+e.getMessage());
            }
        }
    }
}
Cette application se connecte sur la machine et le port spécifiés sur la ligne de commande. Elle lit ensuite toutes les données, et les affiche à l'écran. On peut par exemple exécuter :

java jnetcat eig6.unige.ch 13

Exécution - port 13

Thu May 30 11:23:19 1996

Le port 13 donne l'heure, on parle du généralement du port daytime.

Exécution - port 19

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh
"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi
#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk
%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl
&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm
'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn
Le port 19 est le port générateur de caractères, chargen, il envoie des lignes de caractères tant que le client est connecté. Pour arrêter le client, on doit presser contrôle-C.
Index général - Index concepts - Règles BNF
© 1996, DIP Genève, Alexandre Maret & Jacques Guyot
page générée Fri Jun 21 15:41:37 MET DST 1996