Heim >Java >javaLernprogramm >Ausführliche Erläuterung der Code-Implementierung für die Socket-Einstellung des Verbindungszeitlimits in Java

Ausführliche Erläuterung der Code-Implementierung für die Socket-Einstellung des Verbindungszeitlimits in Java

怪我咯
怪我咯Original
2017-07-02 10:17:171801Durchsuche

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 – SocketAddress, die Host-IP und Port bereitstellt

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

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);

Erläutern Sie die oben genannten Klassen SocketAddress und InetSocketAddress Um Socket-Verbindungen zu erstellen, ist Erstere eine abstrakte Klasse und Letztere ist eine Unterklasse der Ersteren. Die Adresse wird durch die Konstruktormethode erstellt:

public InetSocketAddress(String hostname, int port)

Parameter:

  • Hostname – Hostname, der auch IP sein kann

  • Port – Portnummer

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

public final InetAddress getAddress()

Diese Methode wird Geben Sie eine InetAddress zurück und beziehen Sie dann die IP über die InetAddress-Methode wie folgt:

public String getHostAddress()

Dann lautet der Code zum Abrufen der lokalen IP:

// client就是上面创建的Socket
String host_ip = client.getAddress().getHostAddress();

Das ist es!

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Code-Implementierung für die Socket-Einstellung des Verbindungszeitlimits 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