Heim  >  Artikel  >  Java  >  Code-Fallanalyse zum Festlegen des Verbindungszeitlimits für Socket in Java

Code-Fallanalyse zum Festlegen des Verbindungszeitlimits für Socket in Java

黄舟
黄舟Original
2017-06-18 09:58:471725Durchsuche

Wenn bei unseren täglichen Verbindungen die Zeitüberschreitung zu lang ist, wirkt sich dies auf den Test während der Entwicklung aus. Der folgende Artikel teilt Ihnen hauptsächlich den Code zum Festlegen der Verbindungszeitüberschreitung für Socket in Java mit Schauen wir uns das unten an.

Vorwort

Jeder weiß, dass Javas Socket IO auslöst, wenn er keine Verbindung zum Host mit der angegebenen IP und dem angegebenen Port herstellen kann Ausnahme Ausnahme, und unter normalen Umständen vergeht von der Verbindung bis zum Auftreten der IOException ein unbestimmter Zeitraum, der sogenannte Timeout-Zeitraum. Wenn der Timeout-Zeitraum zu lang ist, wirkt sich dies auf den Test aus Wenn der Code während der Entwicklung zu einem Produkt wird, hat dies große Auswirkungen auf die Benutzererfahrung. Wie kann diese Dauer festgelegt werden? Werfen wir einen Blick auf die ausführliche Einführung:

Die Socket-Klasse stellt eine Methode bereit:


public void connect(SocketAddress endpoint, int timeout) 
    throws IOException

Parameter :

  • Endpunkt – Socket-Adresse, die Host-IP und Port bereitstellt

  • timeout – Zu verwendender Timeout-Wert (in Millisekunden als Einheiten). ).

Diese Methode wird verwendet, um den Socket mit dem angegebenen Server zu verbinden und einen Timeout-Wert festzulegen. Wenn der Timeout-Wert auf größer als 0 eingestellt ist, wird bei Auftreten des Timeouts eine Ausnahme ausgelöst und die Verbindung wird gestoppt.

Daher können Sie den Timeout-Zeitraum der Socket-Verbindung mit der oben genannten Methode festlegen. Der Code lautet wie folgt:


// 设置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);

Erklären Sie das Obige SocketAddress und InetSocketAddress werden zum Erstellen von Socket-Verbindungsadressen verwendet. Die erstere ist eine abstrakte Klasse und die letztere ist eine Unterklasse der ersteren. Die Adresse wird über die Konstruktormethode:


public InetSocketAddress(String hostname, int port)

Parameter:

  • Hostname – Hostname, das kann es auch ip

  • Port – Portnummer

Darüber hinaus bietet InetSocketAddress auch einige netzwerkbezogene Methoden, wie z. B. die häufig verwendete Methode von Abrufen der lokalen IP:


public final InetAddress getAddress()
Diese Methode gibt eine InetAddress zurück und ruft dann die IP über die InetAddress-Methode wie folgt ab:


public String getHostAddress()
Dann holen Sie sich das. Der Code der Maschinen-IP lautet:


// client就是上面创建的Socket
String host_ip = client.getAddress().getHostAddress();
Also, lasst uns hier aufhören!

Zusammenfassung

Das obige ist der detaillierte Inhalt vonCode-Fallanalyse zum Festlegen des Verbindungszeitlimits für Socket in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn