Retour | Home | Contact |
---|
Prise (réseau logicielle).
Fournir une API de communication entre applications distantes préservant la sémantique des opérations sur des fichiers (open, read, write, close).
Les socket représente un point de connexion sur :
Type de socket | Famille de protocole | Client | Serveur | Client et serveur | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PF_INET | PF_UNIX | PF_NS | AppleTalk | Création | Connexion au serveur | Association à une adresse | Création | Configuration de la file d'écoute | Attente d'une connexion cliente | Lecture | Ecriture | ||
Connecté (SOCK_STREAM) | TCP | O | socket | connect | N/A | socket | bind | listen | accept | read | write | ||
Non connecté (SOCK_DGRAM) | UDP | O | socket | N/A | bind | socket | bind | N/A | N/A | recvfrom | sendto | ||
Brut | IP | ||||||||||||
Famille d'adresses | AF_INET (adresse IP + port) | AF_UNIX (nom arborescence Unix) | AF_NS |
L'utilisation de sockets implique typiquement les opérations suivantes :
En Java l'API des socket se trouve dans le package java.net
. Une
fois les sockets établies, c'est l'API des entrées-sorties (java.io
)
qui prend le relai pour l'écriture et lecture de données.
Un exemple (simplifié) de client TCP en Java est :
int port = 8000;
java.net.Socket socket = new java.net.Socket ("serverhost", serverPort);
java.io.PrintWriter out = new java.io.PrintWriter (socket.getOutputStream(), true);
java.io.PrintWriter in = new java.io.BufferedReader (new java.io.InputStreamReader (socket.getInputStream()));
out.println ("Requête");
String reponse = in.readLine();
out.close();
in.close();
socket.close();
Un exemple (simplifié) de serveur TCP en Java est :
int port = 8000;
java.net.ServetSocket server = new java.net.ServerSocket (serverPort);
java.net.Socket client = server.accept();
java.io.PrintWriter out = new java.io.PrintWriter (client.getOutputStream(), true);
java.io.PrintWriter in = new java.io.BufferedReader (new java.io.InputStreamReader (client.getInputStream()));
String requete = in.readLine();
out.println ("Réponse");
out.close();
in.close();
client.close();
server.close();
Des exemples d'API de sockets sont :
java.net
)C:\windows\system32\drivers\etc\services
C:\winnt\system32\drivers\etc\services
C:\windows\services
/etc/services
avec éventuellement des alias (les protocoles spécifiés
doivent exister dans /etc/protocols
). Par exemple :ftp 21/tcp
domain 53/tcp nameserver
domain 53/udp nameserver
tftp 69/udp
Retour | Home | Contact |
---|