2010-11-18 6 views
1

Dans le code ci-dessous.Socket Connection Timeout

Si la valeur timout est 0 (NOUVELLESOCKET (Adresse, 7010, 0); Le temps d'attente est "Temps total en millisecondes = 1024" Si la valeur timout est 1 (NOUVELLESOCKET (Adresse, 7010, 1); le temps d'attente est « temps total en millisecondes = 22 »

est-il des paramètres du système d'exploitation par défaut (Windows) qui peut réduire le temps d'attente pour la valeur de délai d'attente « 0 ». entrées quelques registre essayé LmhostsTimeout, TcpTimedWaitDelay sans succès S'il vous plaît aidez-moi à résoudre ce problème


import java.net.*; 
import java.io.*; 

public class TestConnection 
{ 
public static void main (String a[]) 
{ 
long t1 = System.currentTimeMillis(); 
      try 
      { 
        InetAddress Address = InetAddress.getLocalHost(); 
        System.out.println("Host Address" + Address + " Port " + 7010); 
        newSocket(Address, 7010, 0); 
     long t2 = System.currentTimeMillis(); 
     System.out.println("SenthilTS1=" + (t2-t1)); 

    }catch (Exception e) 
      { 
    long t2 = System.currentTimeMillis(); 
    System.out.println("Total Time in MilliSeconds =" + (t2-t1)); 
    //    e.printStackTrace(); 
      } 
} 

    /*package*/ static void initSocket(Socket sock) throws SocketException { 
     try { 
     sock.setTcpNoDelay(true); 
     } catch (SocketException se) { 
     try { sock.close(); } catch (IOException ignore) {} 
     //CR283953. Differentiate that the exception is thrown while doing a 
     //socket set operation. 
     throw se; 
     } 
    } 

     static Socket newSocket(InetAddress address, int port, 
          int timeout) throws IOException 
    { 
     Socket sock = new Socket(); 
     initSocket(sock); 
     InetSocketAddress ina = new InetSocketAddress(address, port); 
    System.out.println("******** SocketMuxer.newSocket before Socket.connect() call TimeStamp (ms)=" + System.currentTimeMillis()); 
    try{ 
    sock.connect(ina, timeout); 
    System.out.println("******** SocketMuxer.newSocket after connect() SUCCESS call TimeStamp (ms)=" + System.currentTimeMillis()); 
    }catch (IOException e) 
    { 
    System.out.println("******** SocketMuxer.newSocket after connect() FAILED call TimeStamp (ms) =" + System.currentTimeMillis()); 
    e.printStackTrace(); 
    throw e; 
    } 
    return sock; 
    } 
} 
+1

Vous devriez peut-être éditer votre titre pour ne pas être tout en majuscule. Et aussi, il y a du code dans votre question qui n'est pas formaté en code. –

+0

Vous devez reformuler votre question afin de rendre votre question suffisamment claire. Par exemple, clarifiez ces choses; Quelle est votre préoccupation ici? Quelle est votre attente? Quel est le résultat que vous obtenez? –

Répondre

0

Le délai de connexion par défaut varie selon la plate-forme. C'est autour de 55-75 secondes mais ça varie. Sous Windows, il est contrôlé par une entrée de registre. Pourquoi voulez-vous le changer? Si vous écrivez le code, pourquoi ne pouvez-vous pas toujours utiliser un délai de connexion positif?