Qu'est-ce qu'un timeout de socket?
Dans les réseaux complexes et les ordinateurs grand public, il existe un composant numérique appelé prise qui connecte deux plates-formes différentes. Lorsqu'il y a un problème avec la connexion du socket, tel que le réseau n'est pas disponible ou qu'il n'y a pas d'Internet, le socket continuera à essayer de se connecter. Un délai d'attente de socket arrête cette connexion après un laps de temps spécifié. La commande socket timeout est généralement créée dans le cadre d'une programmation orientée objet (OOP) ou réseau et empêche le socket de créer des problèmes exagérés en coupant la connexion.
Un délai d'attente de socket est une durée spécifiée à partir du moment où la socket se connecte jusqu'à la rupture de la connexion. De nombreux utilisateurs pensent que le délai d'attente est un problème en soi, mais ce délai est en réalité fait pour empêcher que d'autres problèmes ne se manifestent. Le délai entre la connexion et le délai d'attente est défini par les programmeurs du logiciel ou du système d'exploitation. Sans commande timeout, le socket continuera à tenter la connexion indéfiniment.
Si le délai d'attente du socket n'est pas programmé, le socket restera ouvert pendant qu'il attend la connexion de l'autre côté. Le laisser ouvert ouvre l'ordinateur à d'éventuelles attaques malveillantes; plus généralement, l'ordinateur utilise simplement la mémoire en excès pour se connecter à un réseau qui ne répond pas. Cela empêche également l’utilisation de la prise, ce qui ralentit l’ensemble de l’ordinateur.
Les programmeurs de systèmes d'exploitation et de logiciels doivent spécifier le délai d'attente du socket. Cela se voit le plus souvent dans la programmation POO ou réseau, car ce sont les programmes qui utilisent le plus les sockets; la plupart des programmes de sites Web n'utilisent pas les sockets aussi souvent et n'ont pas de commandes de délai d'attente. Le délai d'attente est généralement mesuré en millisecondes, mais le programmeur peut faire en sorte que le délai d'attente prenne plusieurs minutes, voire plusieurs heures, s'il le souhaite.
La plupart des programmeurs ont deux messages de délai d'attente de socket, l'un pour une connexion qui ne répond pas et l'autre pour la fermeture du programme du serveur ou du réseau. Un délai d'attente de socket n'est pas toujours nécessaire pour qu'un socket arrête la connexion. Lorsqu'un serveur ou un ordinateur est sur le point de fermer la connexion, il envoie un signal à la prise pour qu'il en fasse de même et ferme la connexion entre les deux systèmes. Ce signal n'est pas toujours reçu, y compris lorsque l'Internet se bloque soudainement ou que le câble Ethernet est débranché pendant le temps de connexion. Dans ces cas, le socket continuera à attendre pour les données.