Aller au contenu

Introduction aux sockets TCP

Les sockets sont une façon bidirectionnelle de communiquer entre deux programmes sur un réseau informatique. Chaque socket est associé à une adresse IP et un numéro de port, ce qui permet de spécifier l'endroit où les données doivent être envoyées ou reçues. L'utilisation de sockets permet à deux processus, souvent appelés client et serveur, d'envoyer des informations de manière fiable et efficace.

Le serveur

Pour qu'un socket serveur soit utilisable, on doit spécifier l'adresse IP ainsi que le port d'écoute. Cette combinaison permettra à un client de s'y connecter.

Adresse IP

Chaque ordinateur possède habituellement plusieurs adresses IP. Tout dépendant de l'adresse utilisée, la connexion pourra s'effectuer ou non. Voici quelques adresses et leur signification :

Adresse IP Signification
0.0.0.0 Écoute sur toutes les adresses IP disponibles
127.0.0.1 Écoute locale seulement, sur l'adresse 127.0.0.1. Aussi appelée localhost.
localhost Écoute locale seulement, sur l'adresse 127.0.0.1. Aussi appelée localhost.
10.4.128.32 Écoute seulement sur l'adresse 10.4.128.32. Une tentative sur localhost ne fonctionnera pas.

Port

Un numéro de port doit également être utilisé comme écoute, un peu comme une porte de maison pour y entrer. La plage de port disponible se situe entre 1 et 65535. Cependant, Quelques règles doivent habituellement être respectées :

  • Une écoute sur un port entre 1 et 1023 requiert des droits administrateurs
  • Une écoute sur un port standard d'une autre application pourrait causer des conflits (ex. le port 8080 est généralement utilisé comme port http alternatif)

Avertissement

Pour accepter des connexions distances, le pare-feu doit permettre la connexion sur l'adresse IP et le port spécifié.

Le client

Pour se connecter au serveur, le client doit utiliser le même port que le serveur et doit pouvoir rejoindre l'adresse IP configurée par le serveur. Si une de ces deux variables n'est pas bonne, la connexion échouera. De plus, le pare-feu sur le serveur doit également accepter les connexions.

Les flux de données (streams)

Une fois la connexion établie, il sera possible, de part et d'autre, d'établir des flux de données par lesquels la communication pourra s'établir. Le flux de sortie du client sera attaché au flux d'entrée du serveur, et vice-versa.