Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2155 connectés 

  FORUM HardWare.fr
  Programmation
  C

  recv non bloquant en progra socket (connected)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

recv non bloquant en progra socket (connected)

n°669943
xinoef
For Adun !
Posté le 10-03-2004 à 17:44:50  profilanswer
 

Bonjour,
 
Voila l'idee : je connecte deux sockets ensemble, d'un cote je fais des send, de l'autre des receive. J'ai plusieur thread qui font des sends sur le meme socket et une thread qui fait son recv. Mon probleme c'est que le receive ne bloque pas : il me signale que je recoit en permanence des messages vides tant qu'il n'y a pas de message entrant. Je ne comprends pas pourquoi car je n'ai pas de client mort comme c'est le cas d'habitude. Vous avez une idee ? Pour l'instant je fait un sleep de 1 seconde avant de verifier s'il y a vraiment un message arrive pour rafraichir. Vous avez d'autres idees ?
Merci


---------------
/* Toblerone is so gooooood 4 U */
mood
Publicité
Posté le 10-03-2004 à 17:44:50  profilanswer
 

n°669947
docmaboul
Posté le 10-03-2004 à 17:48:21  profilanswer
 

Xinoef a écrit :

Bonjour,
 
Voila l'idee : je connecte deux sockets ensemble, d'un cote je fais des send, de l'autre des receive. J'ai plusieur thread qui font des sends sur le meme socket et une thread qui fait son recv. Mon probleme c'est que le receive ne bloque pas : il me signale que je recoit en permanence des messages vides tant qu'il n'y a pas de message entrant. Je ne comprends pas pourquoi car je n'ai pas de client mort comme c'est le cas d'habitude. Vous avez une idee ? Pour l'instant je fait un sleep de 1 seconde avant de verifier s'il y a vraiment un message arrive pour rafraichir. Vous avez d'autres idees ?
Merci


 
select est votre amie.

n°669950
docmaboul
Posté le 10-03-2004 à 17:50:44  profilanswer
 

A moins que ce soit setsockopt ou quelque chose de ce goût-là (je ne me souviens plus du comportement de select et du timeout sur une socket non-bloquante).

n°669972
xinoef
For Adun !
Posté le 10-03-2004 à 18:12:40  profilanswer
 

J'ai essaye un setsockopt( SOL_SOCKET, SO_RCVLOWAT ) mais ca ne marche pas... Il me recoit toujours des messages de 0 char.
Je vais essayer de voir avec select...


---------------
/* Toblerone is so gooooood 4 U */
n°669984
xinoef
For Adun !
Posté le 10-03-2004 à 18:33:32  profilanswer
 

Ca marche pas non plus avec select...
J'avais bon espoir avec setsockopt mais je comprends pas... Meme avec ca ca fouarre...


---------------
/* Toblerone is so gooooood 4 U */
n°669989
xinoef
For Adun !
Posté le 10-03-2004 à 18:39:03  profilanswer
 

Heuuu... petit detail :
Je fais ca :
 
int on=1 ;
if (setsockopt(new_status->intern_socket_rcv, SOL_SOCKET, SO_RCVLOWAT, &on, sizeof(on))<0) {perror("sd with SO_RCVLOWAT" );}
 
Il me fait ca : "sd with SO_RCVLOWAT: Invalid argument"
 
???


---------------
/* Toblerone is so gooooood 4 U */
n°669992
docmaboul
Posté le 10-03-2004 à 18:42:35  profilanswer
 

Xinoef a écrit :

Heuuu... petit detail :
Je fais ca :
 
int on=1 ;
if (setsockopt(new_status->intern_socket_rcv, SOL_SOCKET, SO_RCVLOWAT, &on, sizeof(on))<0) {perror("sd with SO_RCVLOWAT" );}
 
Il me fait ca : "sd with SO_RCVLOWAT: Invalid argument"
 
???


 
Mais pourquoi faites-vous ça?
 
Quant à listen, cette fonction permet de savoir s'il y a du data en attente ou si l'on peut écrire sur la socket.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  recv non bloquant en progra socket (connected)

 

Sujets relatifs
Socket client\serveurSocket prob client\serveur help !!!!
Socketsocket AF_UNIx (ou AF_LOCAL)
[Debutant] Pb avec ObjectOutputStream et les socketQue signifie "invalid_socket" ?
envoyer un fichier autre que les .txt avec les socketSocket TCP et Thread...
choisir la carte réseau du socket en Javaproblème de socket client --> bloquantes ou pas
Plus de sujets relatifs à : recv non bloquant en progra socket (connected)


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)