Maison > développement back-end > Golang > Comment détecter les connexions TCP fermées à l'aide du package « net » de Go ?

Comment détecter les connexions TCP fermées à l'aide du package « net » de Go ?

Linda Hamilton
Libérer: 2024-12-28 05:53:10
original
835 Les gens l'ont consulté

How to Detect Closed TCP Connections Using Go's `net` Package?

Détection de fermeture de connexion TCP avec le package net

La détermination de la fermeture d'une connexion TCP dans le package net est cruciale pour une gestion efficace du serveur. Dans cet article, nous explorerons les meilleures pratiques pour détecter les connexions fermées.

Question :Comment puis-je détecter une connexion TCP fermée dans le package net ?

Réponse :

Pour vérifier de manière fiable la fermeture de la connexion, suivez la technique décrite dans la section « Meilleure façon de détecter de manière fiable que une connexion TCP est fermée" thread :

  1. Créez un tampon d'un seul octet : one := make([]byte, 1).
  2. Fixez un délai de lecture court : c. SetReadDeadline(time.Now()).
  3. Tentative de lecture à partir de la connexion : if _, err := c.Read(one); err == io.EOF {.
  4. Si err est io.EOF, la connexion a été fermée. Enregistrez la fermeture et fermez la connexion.

Remarque : Étant donné que les lectures de zéro octet reviennent immédiatement dans Go 1.7, il est essentiel de lire au moins un octet pour éviter les faux positifs.

Détection du délai d'attente :

Pour détecter les conditions de délai d'attente, vérifiez si l'erreur est renvoyée par c.Read est un net.Error : si neterr, ok := err.(net.Error); ok && neterr.Timeout() {. Si le délai d'attente s'est produit, gérez-le en conséquence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal