Maison > Java > javaDidacticiel > le corps du texte

Comment interrompre gracieusement un appel bloquant ServerSocket.accept() en Java ?

Linda Hamilton
Libérer: 2024-10-26 16:14:02
original
295 Les gens l'ont consulté

How to Gracefully Interrupt a Blocking ServerSocket.accept() Call in Java?

Interruption de l'appel bloquant ServerSocket.accept()

Dans le paradigme de réseau Java, la nature bloquante de la méthode ServerSocket.accept() peut gêner l'exécution du programme lorsqu'il est nécessaire de répondre à des événements externes. Lorsque le thread principal entre dans une boucle while(écoute) appelant continuellement accept() pour accepter de nouvelles connexions client, il devient difficile d'interrompre ce processus et de répondre aux commandes administratives.

La classe ServerSocket ne fournit aucune valeur intrinsèque. mécanisme pour interrompre la méthode accept(). Cependant, une solution à ce problème réside dans l'exploitation du ServerSocketChannel sous-jacent associé à l'objet ServerSocket. La classe ServerSocketChannel propose une méthode close() qui, lorsqu'elle est invoquée depuis un autre thread, termine gracieusement l'appel accept() en cours. L'exception, SocketException, est ensuite levée dans la méthode accept() et peut être gérée de manière appropriée dans le thread principal, lui permettant de répondre à la commande reçue.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!