Heim > Java > javaLernprogramm > Hauptteil

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

黄舟
Freigeben: 2017-06-18 09:58:47
Original
1729 Leute haben es durchsucht

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
Nach dem Login kopieren

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);
Nach dem Login kopieren

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< erstellt 🎜>:


public InetSocketAddress(String hostname, int port)
Nach dem Login kopieren

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()
Nach dem Login kopieren
Diese Methode gibt eine InetAddress zurück und ruft dann die IP über die InetAddress-Methode wie folgt ab:


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


// client就是上面创建的Socket
String host_ip = client.getAddress().getHostAddress();
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!