Maison > Java > javaDidacticiel > le corps du texte

Explication détaillée de l'implémentation du code pour le délai d'attente de connexion du paramètre Socket en Java

怪我咯
Libérer: 2017-07-02 10:17:17
original
1785 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).

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 SocketAddress et InetSocketAddress ci-dessus. Ces deux classes sont utilisées. pour créer des connexions Socket. Adresse, 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 :

  • hostname – hostname, qui 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 pour obtenir l'adresse IP locale :

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

public String getHostAddress()
Copier après la connexion
Ensuite, le code pour obtenir l'IP locale est :

// client就是上面创建的Socket
String host_ip = client.getAddress().getHostAddress();
Copier après la connexion
Donc, c'est tout !

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