webForumDet fria alternativet

timeout-tid på Socket

3 svar · 478 visningar · startad av golding

goldingMedlem sedan okt. 200611 inlägg
#1

Tjena...

Jag försöker skapa en socket till en server.
Det funkar bra men om servern inte är online så försöker den tills jag avslutar programmet.
Kan man sätta någon timeout tid eller nått?

import java.net.*;

public class test
{
	public static void main(String[] args)
	{
		Socket s = null;
		
		try {
			s = new Socket("www.telia.se", 80);
		}
		catch(Exception e) {
			System.exit(0);
		}
		
		System.out.println(s);
	}
}
antilizaerMedlem sedan apr. 200357 inlägg
#2

Följande borde funka, i alla fall om du kör jdk 1.4 eller senare, och ger dig en timeout på 3 sekunder när du ska ansluta dig

try 
    Socket socket = new Socket();
    socket.connect(InetSocketAddress("www.telia.se", 80), 3000);
} catch (Exception e) {
}
Re-JeePMedlem sedan sep. 200642 inlägg
#3

antilizaer skrev:

Följande borde funka, i alla fall om du kör jdk 1.4 eller senare, och ger dig en timeout på 3 sekunder när du ska ansluta dig

try 
    Socket socket = new Socket();
    socket.connect(InetSocketAddress("www.telia.se", 80), 3000);
} catch (Exception e) {
}

Förutom att du måste skapa en ny (new InetSocketAddress(...)) instans av InetSocketAddress och lägga till en måsvinge...

Men annars borde det funka ja...

LimeMedlem sedan sep. 2001961 inlägg
#4

golding skrev:

Tjena...

Jag försöker skapa en socket till en server.
Det funkar bra men om servern inte är online så försöker den tills jag avslutar programmet.
Kan man sätta någon timeout tid eller nått?

import java.net.*;

public class test
{
	public static void main(String[] args)
	{
		Socket s = null;
		
		try {
			s = new Socket("www.telia.se", 80);
		}
		catch(Exception e) {
			System.exit(0);
		}
		
		System.out.println(s);
	}
}

Och lite kinkigt... Man ska ALDRIG fånga ett anonymt Exception på det där sättet om man inte ska kapsla in det i en egen Exception-klass. Fånga de exceptions som kastas och inte några andra. Lättare felsökning då om man i ett och samma try-block har olika möjliga Exception-typer.

Skräphögen har talat! MJÄ!

136 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
133 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)