Probleme de socket

Maniaxman Messages postés 155 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 17 juillet 2008 - 28 oct. 2007 à 19:40
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 - 30 oct. 2007 à 10:27
    bonjour,

j'ai créer une application client serveur avec winsock, mais j'ai un gros probleme dans mon application, en fait le serveur utilise Recv, mais étant donné qu'il est en mode bloquant, il bloque toute l'application jusqu'a ce qu'il reçoive un ordre :(

sauriez-vous comment le rendre non bloquant ?

j'ai testé ceci :

    vArg:=1;
    ioctlsocket(Sock, FIONBIO, vArg);

mais ça ne change rien, je dois peut etre modifier quelque chose dans ma méthode de reception, mais je vois pas quoi, est-ce que vous pourriez m'expliquer ou me donner ue source assez clair d'utilisation ?

merci d'avance

Maniaxman

5 réponses

WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
28 oct. 2007 à 20:36
Bonsoir

En mode bloquant, la gestion des sockets doit obligatoirement passer par des threads, pour éviter de geler l'application.

N.B. L'avantage du bloquant est une gestion simplifiée, facilement debuggable (et portable sous linux). Alors pourquoi changer ?

Cordialement.



<hr />
"L'imagination est plus importante que le savoir." Albert Einstein
0
Maniaxman Messages postés 155 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 17 juillet 2008
28 oct. 2007 à 23:26
effectivement, un petit thread fera parfaitement l'affaire ;)

mais maintenant j'ai un autre probleme avec les thread : l'application reste en écoute et quand je "kill" le thread, l'application est toujours en écoute :(

Maniaxman
0
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
29 oct. 2007 à 08:27
Maniaxman,

Il s'agit "simplement" d'une mauvaise gestion et/ou utilisation de ton thread. Soit tu te rabats vers les exemples de ce site (forum, sources,tutoriaux,...), soit tu nous fournis un bout de code; Sinon je vois pas comment on va pouvoir t'aider sur ce coup là.

Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
0
Maniaxman Messages postés 155 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 17 juillet 2008
29 oct. 2007 à 11:56
ok je vais essayer.

et juste comme ça qu'est-ce que tu aurais pris entre un thread VCL et un thread Win32 ?

Maniaxman
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
30 oct. 2007 à 10:27
La VCL est là pour faciliter la programmation et pour etre productif. Donc je dirais le thread VCL pour gagner du temps en developpement.
Mais, si tu as vraiment le temps, les connaissances necessaires, une fonctionnalité spécifique, un besoin de rapidité, envie d'être plus proche du système, etc.. rien ne t'empeches d'utiliser le thread de l'API windows.

Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
0
Rejoignez-nous