0% ont trouvé ce document utile (0 vote)
30 vues32 pages

ch4 Programmation Reseau

Transféré par

Halima Hammougua
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
30 vues32 pages

ch4 Programmation Reseau

Transféré par

Halima Hammougua
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

CHAPITRE4:

COMMUNICATIONS
BASÉES SUR LES SOCKETS
TCP/UDP
COMMUNICATION RESEAU
CHOISIR ENTRE TCP ET UDP
ntroduction

• Les sockets sont les terminaisons des connections entre


machines hôtes et peuvent être utilisées pour envoyer et
recevoir des données.

• Il y a deux types de sockets: socket serveur et socket clien

• Socket serveur pour recevoir les reqûetes des clients.

• Socket client peut être utilisé pour l’envoi et la réception


des données.
Socket : Point de terminaison pour la communication. Un socket peu
être vu comme une interface permettant de lire ou écrire des
données entre deux entités (locales ou distantes).

ypes de sockets :Stream socket (SOCK_STREAM) : Utilise TCP (orienté


onnexion, fiable).
Datagram socket (SOCK_DGRAM) : Utilise UDP (sans connexion, non
fiable).
Raw socket (SOCK_RAW) : Donne accès aux paquets bruts, souvent
pour des usages réseau avancés (nécessite des privilèges).
SOCKETS EN JAVA ?

Les BSD sockets (sockets Ber


BSD sockets UNIX sont une interface de
au dessus de TCP ou UDP programmation standard po
communication entre proce
utilisée dans de nombreux s
Une infrastructure puissante et d'exploitation, notamment l
flexible pour la programmation réseau systèmes UNIX et Unix-like (c
Linux). Elles permettent la
communication réseau (par
UDP, etc.) ou entre processu
locaux sur la même machin

En Java toutes les classes relatives aux sockets


sont dans le package [Link]
LE PACKAGE NET

• Des Exceptions
• Des entrées Sorties
• Des Sockets
• …...

Plusieurs hiérarchies de classes


DES TYPES DE SOCKETS

Object

ServerSocket DatagramSocket

HttpAwareServerSocket MulticastSocket

Socket

HttpSendSocket WrappedSocket
DES EXCEPTIONS

Exception

IOException

SocketException ProtocolException
UnknownHostException UnknownServiceException

BindException ConnectException
DES ENTRÉES SORTIES

Object

InputStream OutputStream

FileInputStream FileOutputStream

SocketInputStream SocketOutputStream
océdure de connexion avec Java

erveur commence par créer une ServerSocket Serveur


recevoir les demandes de connexion ServerSocket(port) A S
ServerSocket: ss p e
p r
l v
i e
nt c u
pplication a r
Client t
i
o
n

Procédure avec Java


1 Procédure de connexion avec
va
erveur se met en attente des demandes de
Serveur
nnexion
A S
ServerSocket: ss p e
p r
l v
[Link]() i e
nt c u
pplication a r
Client t
i
o
n

Procédure avec Java


Procédure de connexion avec
a
client demande une connexion à travers le port Serveur
ocié au service
A S
ServerSocket: ss p e
cket(‘Serveur’, port) p r
l v
[Link]() i e
nt c u
pplication a r
Client t
i
o
n

Procédure avec Java


1 Procédure de connexion avec
va
erveur crée une nouvelle socket qui sera l’une Serveur
extrémités de la connexion A S
ServerSocket: ss p e
cket(‘Serveur’, port) p r
l v
[Link]() i e
nt c u
pplication Socket: s a r
Client t
i
o
n

Procédure avec Java


1 Procédure de connexion avec
va
client obtient la socket qui est l’extrémité de la Serveur
onnexion côté client A S
ServerSocket: ss p e
p r
l v
[Link]() i e
nt c u
pplication Socket: s Socket: s a r
Client t
i
o
n

Procédure avec Java


1 Procédure de connexion avec
va
client et le serveur créent les InputStream et Serveur
tputStream associés aux deux sockets A S
ServerSocket: ss p e
p r
l v
[Link]() i e
nt c u
pplication Socket: s Socket: s a r
Client is is t
os os i
getInputStream o
[Link] n
tOutputStream
[Link]

Procédure avec Java


1 Procédure de connexion avec
va
client et le serveur commencent les échanges Serveur
données à travers les sockets (les InputStream et A S
tputStream) p e
ServerSocket: ss
p r
l v
[Link]() i e
nt c u
pplication Socket: s Socket: s [Link]() a r
Client is is t
os os i
[Link](int nb)
[Link]() o
n
[Link](int nb)

Procédure avec Java


1 Procédure de connexion avec
va
client et le serveur commencent les échanges Serveur
données à travers les sockets (les InputStream et A S
putStream) p e
ServerSocket: ss
p r
l v
[Link]() i e
nt c u
pplication a r
Client t
i
o
n
[Link]( )

Procédure avec Java


LES SOCKETS SERVEUR (JAVA)

• Une socket serveur est une instance de la classe


ServerSocket et peut être créee par l’un des ces
constructeurs:
ServerSocket(int port)
ServerSocket(int port, int backlog)
• port: numéro de port sur lequel le serveur se mettra à
l’écoute de requêtes de la part des clients.
• backlog: longeur maximum de la file des clients en
attente d’être servis (50 par default).
• Les sockets serveur peuvent être créees avec les
applications Java seulement, pas avec les applets.
LES MÉTHODES DES SOCKETS SERVEUR(JAVA)

• Socket accept()
Attend une requête de connexion. Le thread qu
exécute la méthode sera bloqué jusqu’à ce qu’une
requête soit reçue, à ce moment la méthode retourne une
socket client.
Il y a deux faits importants à noter à propos de la
méthode accept(). Le premier est que cette
méthode est bloquante. Le deuxième est que cette
méthode crée et retourne une instance de Socket.
• void close()
Arrête de recevoir des requêtes des clients.!
USAGE TYPIQUE DE SERVERSOCKET(JAVA)

• try {
ServerSocket s = new ServerSocket(port);
while (true) {
Socket incoming = [Link]();
«Traite un client»
[Link]();
}
[Link]();
} catch (IOException e) {
«Traite l’exception» }
LES SOCKETS CLIENT(JAVA)

• Une socket client est une instance de la classe Socket et


peut être obtenue de deux manières:

(1) Côté serveur, comme valeur retournée par la


méthode accept()

(2) Côté client en utilisant le constructeur


Socket(String host, int port)
host: l’adresse de la machine hôte
port: le numéro de port
LES MÉTHODES DES SOCKETS CLIENT(JAVA)

• getInputStream()
Retourne un objet InputStream pour recevoire les
données(bytes)

• getOutputStream()
Retourns un objet OutputStream pour envoyer des
données(bytes)

• close()
Ferme la socket( et par voie de conséquence la
connexion)

Vous aimerez peut-être aussi