Maison > Java > javaDidacticiel > le corps du texte

Analyse de cas de code sur la définition du délai d'expiration de connexion pour Socket en Java

黄舟
Libérer: 2017-06-18 09:58:47
original
1728 Les gens l'ont consulté

Dans nos connexions quotidiennes, si le timeout est trop long, cela affectera le test en cours de développement. L'article suivant partage principalement avec vous le code de paramétrage du timeout de connexion pour Socket en Java. Les amis qui en ont besoin peuvent s'y référer. ci-dessous. Jetons un coup d’œil ensemble.

Avant-propos

Tout le monde sait que si le Socket de Java ne peut pas se connecter à l'hôte avec l'adresse IP et le port spécifiés, il lancera IO Exception exception, et dans des circonstances normales, il y aura une période de temps indéfinie entre la connexion et l'apparition de IOException, ce qu'on appelle le délai d'attente. Si le délai d'attente est trop long, cela affectera le test. pendant le développement. Si le code devient un produit, cela affectera grandement l'expérience utilisateur, alors comment définir cette durée ? Jetons un coup d'œil à l'introduction détaillée :

La classe Socket fournit une méthode :


public void connect(SocketAddress endpoint, int timeout) 
    throws IOException
Copier après la connexion

Paramètres :

  • point de terminaison – SocketAddress fournissant l'adresse IP et le port de l'hôte

  • timeout – Valeur du délai d'expiration à utiliser (en millisecondes sous forme d'unités ).

Cette méthode est utilisée pour connecter le Socket au serveur spécifié et définir une valeur de délai d'attente. Lorsque la valeur du délai d'attente est supérieure à 0, lorsque le délai d'attente se produit, une exception sera levée et la connexion sera arrêtée. Définir la valeur du délai d'attente sur 0 expirera indéfiniment.

Par conséquent, vous pouvez définir le délai d'expiration de la connexion Socket en utilisant la méthode ci-dessus. Le code est le suivant :


// 设置ip和prot
String ip = "127.0.0.1";
int port = 8888;
// 创建Socket
Socket client = new Socket();
// 设置发送地址
SocketAddress addr = new InetSocketAddress(ip, port);
// 超时1秒,并连接服务器
client.connect(addr, 1000);
Copier après la connexion
Expliquez ce qui précède. SocketAddress et InetSocketAddress. Ces deux classes sont utilisées pour créer des adresses de connexion Socket. La première est une

classe abstraite, et la seconde est une sous-classe de la première. L'adresse est créée via la méthode constructeur<. 🎜> :


public InetSocketAddress(String hostname, int port)
Copier après la connexion
Paramètres :


    nom d'hôte – nom d'hôte, il peut également être ip
  • port – Numéro de port
  • De plus, InetSocketAddress fournit également certaines méthodes liées au réseau, telles que la méthode couramment utilisée de obtention de l'adresse IP locale :


Cette méthode renverra une InetAddress, puis obtiendra l'IP via la méthode InetAddress, comme suit :
public final InetAddress getAddress()
Copier après la connexion


Alors récupérez ceci Le code de l'IP de la machine est :
public String getHostAddress()
Copier après la connexion


Alors, arrêtons-nous ici !
// client就是上面创建的Socket
String host_ip = client.getAddress().getHostAddress();
Copier après la connexion

Résumé

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!

Étiquettes associées:
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
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!