Introduction aux sockets
Par SoftDeath
Mise à jour : 15/05/2012
Difficulté : Difficile
1 536 visites depuis 7 jours, classé 91/797
Bienvenue dans mon tout premier mini-tutoriel consacré aux sockets en langage Java. On ne va pas tout apprendre sur les
sockets mais étudier le plus important concernant ces classes du répertoire java.net.
Avant de vous lancer dans la lecture de ce tutoriel, les deux premières parties de cysboy sur le langage Java ainsi que la
lecture de celui sur les threads et les flux d'entrées et sorties (1/2) sont primordiales pour bien suivre le cours !
Je vous recommande également de lire le chapitre de Dalshim Bien fermer ses threads en Java si vous voulez bien maîtriser la
fermeture de vos threads.
Les sockets servent à communiquer entre deux hôtes appelés Client / Serveur à l'aide d'une adresse IP et d'un port que j'appelle
prise ; ces sockets permettront de gérer des flux entrant et sortant afin d'assurer une communication entre les deux (le client et le
serveur), soit de manière fiable à l'aide du protocole TCP/IP, soit non fiable mais plus rapide avec le protocole UDP. Nous allons
étudier le premier mode, le mode TCP/IP…
Voici ce qu'on peut réaliser à l'aide des sockets :
des jeux en ligne ;
des systèmes distribués ;
des espaces messengers comme MSN Messenger, Yahoo Messenger, … ;
des applications comme BitComet permettant de gérer les fichiers .torrent que vous connaissez ;
et bien d'autres choses.
Les sockets sont utilisés dans plusieurs autres langages, tels que :
le langage C : ( lien vers un tutoriel) ;
le langage C++ : (lien vers un autre tutoriel) ;
le langage PHP : (lien vers un troisième tutoriel) ;
l'Action Script : (aller lire le tutoriel) ;
le Erlang : (lien vers le tuto concerné) ;
et bien d'autres.
Lire les parties « histoire » et « définitions » de tutoriels ci-dessus ne vous fera pas de mal.
Ne tardons pas et commençons.
Sommaire du tutoriel :
Récupérer une adresse IP avec InetAddress
Qu'est-ce qu'un socket ?
Échange de message
TP : un mini-chat entre le client et le serveur !
Q.C.M.