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< erstellt 🎜>:
public InetSocketAddress(String hostname, int port)
Parameter:
public final InetAddress getAddress()
public String getHostAddress()
// client就是上面创建的Socket String host_ip = client.getAddress().getHostAddress();
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!