begin process at 2012 05 30 13:55:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

Timeout pour Socket


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Timeout pour Socket

samedi 12 février 2005 à 13:45:17 | Timeout pour Socket

Oeil_de_taupe

Bonjour les programmeurs,

Je suis en train de créer une DLL pour  rechercher des email sur un serveur POP3. Pour l'instant ma DLL ne fait que loguer l'utilisateur sur le serveur.
Mais le problème est que si le programme appelant la DLL utilise une adresse IP inconnue, la DLL essaie de se connecter à l'IP sur le port 110 (port du protocole POP3) pendant 20 secondes, ce qui fait perdre un peu de temps au programme.
J'ai donc cherché la résponse sur les forums et sur MSDN, mais je n'ai pas trouvé comment baisser cette maudite valeur .
J'ai essayé avec les sockets asynchrones et aussi avec SetSockOpt de l'API Winsock, mais je ne trouve pas la valeur a modifier pour faire baisser cette attente. La seule chose que j'ai trouvé c'est le moyen de faire baisser l'attente de la fonction Send et de la fonction Receive (et encore le résultat ne marche pas bien, même pas du tout).

Quelqu'un aurait-il une solution?


La taupe voit toujours tout (sauf les bugs)
lundi 14 février 2005 à 02:13:31 | Re : Timeout pour Socket

NitRic

Un p'tit bout de code vite fait.
J'suis pas certain que ca va résoudre
ton problème mais ca vaut l'coup d'essayer!


>> select() <<


int socket_connect( SOCKET fd, const struct sockaddr_in * inaddr )
{

   struct fd_set write;
   struct timeval tv;
   int ret;
   unsigned long yes = 1;

   /* non-bloquant => yes */
   ioctlsocket( fd, FIONBIO, &yes );

   if ( -1 == connect( fd, inaddr, sizeof(struct sockaddr_in) ) )
   {

      /* le fait qu'un socket soit en mode bloquant n'indique nullement une erreur => opération en progrès */
      if ( WSAEWOULDBLOCK != WSAGetLastError() )
         return -1;

   }

   FD_ZERO( &write );
   FD_SET( fd, &write );

   /* timeout de 2.5 sec */
   tv.tv_sec = 2; /* sec */
   tv.tv_usec = 500000; /* microsec */

   if ( (ret = select( 0, NULL, &write, NULL, &tv )) > 0 )
      return 0; /* connecté ! */

   if ( !ret )
      WSASetLastError(WSAETIMEDOUT); /* timeout */

   /* if ( ret == -1 ) => ERROR => WSAGetLastError() */

   return -1;

}


~(.:: NitRic ::.)~


Cette discussion est classée dans : serveur, dll, socket, baisser, timeout


Répondre à ce message

Sujets en rapport avec ce message

Serveur Vc++6 pb dans recv [ par alfred ] Salut a tousJ'ai un probleme dans mon serveur et je ne sais pas comment le resoudre. Le client se connecte bien et envoie le bon nombre de caracteres sockets: méthode accept() [ par julien20vt ] Voila,je viens de coder le serveur de ma socket et ce qui me parait etrange c'est que la méthode accept() n'est pas bloquante, je pensais que le serve Tutorial - Socket, serveur, client BCPP + GUI [ par NyxArm ] Bonjours tout le monde, je suis présentement en période d'appretissage du language CPP sur Borland(v.6). Maintenant que j'ai acquis quelque conna socket et fichiers textes : HELP !! [ par ben01n ] Salut tout le monde !je prog actuellement un client serveur en udp multicast sous linux (voir source sur ce site) et j'aimerais que mon serveur envoi Timeout et Socket [ par epoc ] Est-ce que qqun sait comment gérer un timeout sur un socket? (Sans passer par un timer si possible.)Merci :-D socket [ par flatou ] salutvoila le code du serveur sous dos que j'ai fait :#include #include #include #pragma comment(lib, "ws2_32.lib")SOCKET s;SOCKET c;SOCKET result;soc Problème d'envoie par socket [ par CyberP ] J'ai fait un programme qui se connecte à un serveur ftp (le serveur ftp est aussi sur mon ordi). Je me connecte avec la fonction connect() et je recoi pb connetion reseau multiutilisateurs [ par JRB ] lorsque l'on veut creer une connection reseau ou plusieurs clients peuvent se connecter sur le meme serveur, est ce que le serveur doit creer un socke encore mon serveur [ par skysee ] bonjour,je suis toujours avec mon serveur en c sous visual c++ sous windows(sis eulement j'avais linux).Le problème est que je n'ai pas d'erreur de co Réception de données sur socket. [ par julien20vt ] Bonjour,J'ai un doute concernant l'utilisation de sockets.Si coté serveur j'utilise un buffer de taille X pour lire sur ma socket, ce serveur reste en


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales