marsxema
Messages postés2Date d'inscriptiondimanche 10 février 2008StatutMembreDernière intervention17 juillet 2008
-
16 juil. 2008 à 17:34
marsxema
Messages postés2Date d'inscriptiondimanche 10 février 2008StatutMembreDernière intervention17 juillet 2008
-
17 juil. 2008 à 11:29
Bonjour,
Actuellement dans la création d'un filtre directshow qui doit se connecter à des caméras pour afficher des images, je passe par une socket pour récupérer les informations sur la caméra distante.
Mon programme marche très bien, et je récupère bien les images . Maintenant, je dois pouvoir gérer la déconnexion de la caméra.
Donc en gros, le problème que je rencontre actuellement est que lorsque la caméra est débranchée, la fonction connect() met 21 secondes avant de lancer le timeout. Je voudrai réduire ce timeout :
- pour cela j'ai regardé du coté de setsockopt mais ça n'a pas l'air de changer quoique ce soit. Pourtant cette fonction semble appropriée.
- test avec la fonction select. Mais ce n'est pas ce que je veux ou alors je l'ai mal utilisé. En gros, mon appel select est bloquant le temps de mon nouveau timeout/
Y'a t'il un moyen de régler ce timeout ?
connect(connexion,(struct sockaddr*)&server,sizeof(server));
int retval = select(0, NULL, &fdwrite,NULL,&tempo);
if (retval > 0)
{
// ENVOI ET RECEPTION DE DONNEES
}else if (retval == 0)
//TIMEOUT
else if (retval == -1)
// ERROR
Lorsque je fais ceci en boucle, mon programme plante sans afficher d'erreur. En mode debug, si j'exécute ligne par ligne tout se passe bien, mais dès que j'enlève les breakpoint et que je laisse l'application tourner, ça plante. Il doit donc me manquer quelque chose.