begin process at 2012 02 11 22:24:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

recv() bloquant!! select??


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

recv() bloquant!! select??

dimanche 30 mai 2004 à 17:57:25 | recv() bloquant!! select??

dletozeun

bonjour,

je commence la programmation reseau en utilisant les sockets et je me heurte a qques problemes:

je me suis rendu compte que la fonction recv(..) est bloquante si bien que le serveur ne peut qu'attendre qu'on lui envoie un message et ne peut donc pas en envoyer en meme tps.

J'ai entendu parler de la fonction select() mais je ne vois pas ce qu'elle fait et surtout comment m'en servir! Les infos la dessus sont plutot floues.

QQ1 peut-il m'eclairer la dessus??

Je veux seulement connaitre les parametres de select.

Merci.
mardi 1 juin 2004 à 11:50:01 | Re : recv() bloquant!! select??

Thaeron

Salut, pour passer ton problème il ya plusieurs solutions: un thread, select ou alors rendre recv non bloquant (en réalité c'est pas recv qui est bloquant mais ton socket).
Je vais expliquer comment rendre ton socket non bloquant:
Pour le rendre non bloquant ya 2 codes possibles, selon si t'es sous windoz ou sous Linux:

Code windoz:
int
set_nonblocking (int socket)
{
u_long arg = 1;
ioctlsocket (socket, FIONBIO, &arg);
if (arg == 0)
return FALSE;
return TRUE;
}

Code Linux:
void
set_nonblocking (int socket)
{
fcntl(socket, F_SETFL, O_NONBLOCK);
}

Petite précision: faut rendre le socket non bloquant une fois qu'il est connecté (donc apres connect ou accept).

Pour le select regarde le source du squellette de mon server, j'utilise un select et le source est commenté: http://www.cppfrance.com/code.aspx?ID=1114


? Pouf pouf dis le magicien ?


Cette discussion est classée dans : fonction, select, dessus, recv, bloquant


Répondre à ce message

Sujets en rapport avec ce message

la fonction select() [ par dletozeun ] bonjour,je commence la programmation reseau en utilisant les sockets et je me heurte a qques problemes:je me suis rendu compte que la fonction recv(.. Winsock pas fiable?? (fonction recv ) [ par ssmint ] Bonsoir à tous,une fois de plus mon insomnie me pousse vers mon IDE pour une session de codage.. (Ou pour le coup c'est le code qui me rend insomniaqu sockets: fonction recv()!!!!! [ par dletozeun ] bonjour,j'essais de faire communiquer 2 programmes avec les sockets.J'utilise la fonction recv():recv(m_socket,recvbuf,50,0);mais j'ai beau effacer la Connect bloquant [ par 360 ] Salut!Je réalise un programme avec des sockets et je voudrais savoir si il y a un moyen de mettre un timeout pour la fonction connect().Car lorsque j' suprimer l'attente dans les fonction accept et recv en c++!! [ par svirpiren ] bas la question est dans le titre, mercie d'avance.pierre Le select( ) avec C++ Builder? [ par Ninodz ] NinoSalut tout le monde,Quel-est la fonction qui remplace la fonction select( ) dans C++ Builder qui nous permet de sélectionner un client à partir du fonction select() sous windows et unix [ par peyou ] je dois porter un logiciel de windows et unix, je dois utiliser la fonction select() (déclarée dans winsock2.h sous windows et sys/select.h sous unix) socket: recv + timeout ??? [ par oliverman ] Salut tt le monde, En fait mon probleme, c'est que je voudrais utiliser un timeout avec la fonction recv. Est ce qu'il ya une fonction similaire qui p accept bloquant TCP [ par sena ] salut,je voudrais, dans une communication TCP, que mon accept soit non bloquant !Que puis-je faire ???j'utilise setsockopt( sock, SOL_SOCKET, SO_RCVTI Fonction select() [ par Daykel ] Bonjour!Je suis en train de développer un serveur et un client en C avec Visual Studio, mais après avoir vu un source traitant de cette fonction, je v


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 1,498 sec (3)

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