Aide sur la fonction SetSockOption

Résolu
electroonn Messages postés 49 Date d'inscription mardi 14 février 2006 Statut Membre Dernière intervention 27 novembre 2007 - 14 mars 2007 à 03:16
electroonn Messages postés 49 Date d'inscription mardi 14 février 2006 Statut Membre Dernière intervention 27 novembre 2007 - 17 mars 2007 à 18:53
je suis entrain de developper une application pour transfert de fichier en C++, et j'ai besoin de modifier les options du socket pour qu'il ne bloque pas indefiniment lorsque une erreur de transmission est surevenue et pour que je puisse renvoyer le paquet en question.
je sais que c'est possible de gerer les options du socket avec SetSockOption( ), mais je n'ai trouvé aucune documentation a ce sujet, si qlq un peut m'aider ou qui a un exemple d'utilisation ça serait tres bien.
merci

4 réponses

electroonn Messages postés 49 Date d'inscription mardi 14 février 2006 Statut Membre Dernière intervention 27 novembre 2007
17 mars 2007 à 18:53
voila j'ai trouvé une petite astuce utilisant la fonction select( )

 fd_set ensemble;
 FD_ZERO(&ensemble);
 FD_SET(sockfd,&ensemble);
 
 select(0, &ensemble, 0, 0, &TimeOut);
 if(FD_ISSET(sockfd,&ensemble)!=0) {
    recvfrom(sockfd,Buffer,sizeof(Buffer), 0,(sockaddr *)&serveur_addr,&serveur_addrLen );

else cout<<"Toujours rien."<<endl;

ce code permet de faire un timeout sur la fonction recvfrom.
la variable TimeOut est est une structure timeval, et ça se declare comme ça.
 timeval TimeOut;         
 TimeOut.tv_sec=5;
 TimeOut.tv_usec=0;
3
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
14 mars 2007 à 11:04
Salut !

Si j'ai bien compris, tu veux que les fonctions des sockets soient non bloquantes.
Pour ça regarde : WSAAsyncSelect(...);

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
14 mars 2007 à 14:52
Je te conseil de regarder la fonction ioctl

<hr size="2" width="100%" />TuRn3r
0
electroonn Messages postés 49 Date d'inscription mardi 14 février 2006 Statut Membre Dernière intervention 27 novembre 2007
14 mars 2007 à 17:23
ok merci les gars, je vais voir ça !
0
Rejoignez-nous