2010-04-01 2 views
1

J'ai créé un exemple d'application java socket. J'ai utilisé Socket s = new Socket(ip, port) Maintenant, cela fonctionne très bien. mais quand ma connexion internet est très lente cette fois après un long intervalle (même si parfois après 2 minutes) j'avais l'habitude d'obtenir SocketTimeOutException dans cette ligne. signifie qu'il donne cette erreur lors de la création de socket. Je veux que l'exception soit gérée correctement signifie que si la connexion Internet est très lente, alors si cette erreur se produit, elle arrive très tard maintenant.
Je veux si ce type d'erreur se produit alors il devrait être pris très rapidement signifie que l'erreur ne devrait pas arriver à un tel intervalle de temps plutôt qu'elle devrait venir immédiatement.SocketTimeOutException lors de la création du socket, java

Comment y parvenir.

Répondre

1

Diminuer la temporisation de prise comme:

sock.connect(new InetSocketAddress("www.google.com", 80), 500); 

où 500 est délai d'attente en millisecondes.

Voici un extrait qui utilise la classe Socket:

try { 
     InetAddress addr = InetAddress.getByName("www.google.com"); 
     int port = 80; SocketAddress sockaddr = new InetSocketAddress(addr, port); 
     Socket sock = new Socket(); 
     int timeoutMs = 500; 
     sock.connect(sockaddr, timeoutMs); 
    } 
catch (SocketTimeoutException e) { System.out.println("Timeout reached!");} 
Questions connexes