begin process at 2010 02 10 01:07:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Gérér les TIME OUT avec l'API Winsock


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

Gérér les TIME OUT avec l'API Winsock

dimanche 9 novembre 2003 à 20:06:34 | Gérér les TIME OUT avec l'API Winsock

foxdie_ck

bouyour,

je souhaiterai savoir comment utiliser un systeme de timing out afin de quitter les procédure bloquantes de winsock telles que recv() ou connect().

merci beaucoup

foxdie
dimanche 9 novembre 2003 à 20:14:50 | Re : Gérér les TIME OUT avec l'API Winsock

aardman

Membre Club
Salut,
setsockopt(...) avec SO_SNDTIMEO et SO_RCVTIMEO.
lundi 10 novembre 2003 à 00:07:26 | Re : Gérér les TIME OUT avec l'API Winsock

foxdie_ck

Malheureusement non, SO_RCVTIMEO ne peut etre utilisé qu'avec getsockopt() et non pas avec setsockopt().

Merci quand meme, si quelqu'un connait un moyen de fixer un time out pour la fonction recv(), merci pour son aide ;o)

foxdie
lundi 10 novembre 2003 à 00:10:28 | Re : Gérér les TIME OUT avec l'API Winsock

aardman

Membre Club
Salut,
MSDN et les livres sur la programation reseaux m'auraient ils menti ?
Refais des tests.
lundi 10 novembre 2003 à 00:27:29 | Re : Gérér les TIME OUT avec l'API Winsock

aardman

Membre Club
Salut,
J'ai fait des tests, tout va bien. On peut regler le les timeout d'un socket avec setsockopt(...).
Ouf, je suis rassuré.
lundi 10 novembre 2003 à 11:43:49 | Re : Gérér les TIME OUT avec l'API Winsock

foxdie_ck

Je comprends pas....
J'ai écris ca dnas mon code :

int optval = 0x10; /* 16 millisecondes exprès pour qu'il est time out*/
setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (char*)&optval, sizeof(optval));


et puis ca ne change rien du tout.
PAr ailleurs je vois sur msdn.com ceci :


BSD options not supported for setsockopt are shown in the following table.

Value Type Meaning
SO_ACCEPTCONN BOOL Socket is listening.
SO_RCVLOWAT int Receives low watermark.
SO_RCVTIMEO int Receives time-out in milliseconds (available in the Microsoft implementation of Windows Sockets 2).
SO_SNDLOWAT int Sends low watermark.
SO_SNDTIMEO int Sends time-out in milliseconds (available in the Microsoft implementation of Windows Sockets 2).
SO_TYPE int Type of the socket.


Tu vois bien que SO_RCVTIMEO est dans la liste, et donc pas supporté avec setsockopt.

Sur une page de man linux on voit aussi :

Les options suivantes sont traitees au niveau socket. Sauf indication contraire, elles peuvent toutes etre examinees avec getsockopt et positionnees avec setsockopt.

...
SO_SNDTIMEO
lit la valeur de timeout en emission (seulement en lecture)
SO_RCVTIMEO
lit la valeur de timeout en reception (seulement en lecture)
...


Alors, g pas révé! je ne comprends pas ce que tu as fait comme tests.....

à suivre

foxdie
lundi 10 novembre 2003 à 11:55:08 | Re : Gérér les TIME OUT avec l'API Winsock

aardman

Membre Club
Salut,
"(available in the Microsoft implementation of Windows Sockets 2).".
J'imagine que dans les versions anterieures a la version 2.2 ca ne fonctionnait effectivement pas!
lundi 10 novembre 2003 à 12:02:11 | Re : Gérér les TIME OUT avec l'API Winsock

aardman

Membre Club
Salut,
Je viens de retester, en effet on ne peut pas descendre en dessous de 500ms de Timet Out (enfin si, mais il n'est pas pris en compte). Par contre si tu met 1000, 10000, etc... la ca marche. Désolé pour ce manque de précision.
Je vois pas l'utilité d'un timeout de 16ms, autant utiliser les sockets non bloquants, non ?
lundi 10 novembre 2003 à 17:07:56 | Re : Gérér les TIME OUT avec l'API Winsock

foxdie_ck

lol, effectivement ya aucun interet à mettre un time out de 16 ms, ct juste pour etre sur que j'aurai un time out et voir si ca marche.
Par contre j'avais aps testé avec une valeur plus grande.
Je vais tester avec 1000 ms, ce qui me satisfait amplement.

Merci pour ton aide, ct sympa!

foxdie
lundi 10 novembre 2003 à 17:19:54 | Re : Gérér les TIME OUT avec l'API Winsock

aardman

Membre Club
Salut,
Moi j'ai un décalage de 500ms dans mes mesures, donc pour obtenir un bloquage "reel" du socket de 1 seconde, il faut passer 500ms a setsockopt(...).

1 2

Cette discussion est classée dans : winsock, out, time, api, gérér


Répondre à ce message

Sujets en rapport avec ce message

api winsock [ par palini ] Je ne connais pas l'API sous win NT4 qui permet de connaitrela configuration totale de votre machine au niveau du réseau(la commande ipconfig /all)J'a Socket Time-Out [ par malik7934 ] Visiblement je vais jamais m'en sortir avec ces sockets... once again, one question:Je veux que mon serveur arrête d'écouter après 5 secondes s'il n'a [API]envoyer l'heure dans ma fenetre [ par shadow1779 ] Bonjour, on m'a donné la fonction afin d'avoir l'heure systeme, je la met dans un tampon et j'aimerai pouvoir l'afficher dans la fenetre du bloc note [Api]Recuperer l'etat d'une checkbox et de radio [ par shadow1779 ] Bonsoir,j'aimerai avoir un exemple svp pour recuperer l'etat de checkbox et de boutons radios, je pense que cela doit etre comme en php 1 pour coché 0 Hook API GetProcAddress [ par NeoUmbrella ] Salut, voila j'ai codé une dll qui a pour but de trouver toutes les fonctions chargées via l'API GetProcAddress. Pour ca j'ai fais un hook global pour [api]ecriture dans fichier [ par shadow1779 ] Bonsoir,je suis en train de terminer un code pour modifier des settings de server de jeu en direct en utilisant WriteFile, a chaque fois je fais un sp programmation API win32 [ par poulpixx ] salut a tous,j'aimerai savoir si il n'existerai pas un bon tutorial pour apprendre la programmation windows(API WIN32).merci d'avance. Winsock et accents [ par tetedemul ] Bonjour, je fais un socket pour récupérer une page web mais les accents passent mal (affiche des copyrights, des registered trademarks... à la place, TabControl Win32 API [ par ymca2003 ] Bonjour tout le mondeDans un TabControl, lorsqu'il y a plein d'onglets, on peut mettre l'option multiline. Ce que je trouve agaçant avec cette option COLLER - API Windows [ par banane_rose ] COLLER ... ça fait 10 minutes que je cherche je trouve toujours rien ................ (précision: je veux coller du texte dans un edit) help Dorian /


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,593 sec (3)

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