Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Comment une procédure peut-elle vérifier continuellement l'état d'un winsock ? [ Divers / Débutants ] (linux21)

mardi 22 mai 2007 à 19:52:33 | Comment une procédure peut-elle vérifier continuellement l'état d'un winsock ?

linux21

Bonjour, étant débutant un peu autodidacte en vb6, quelque chose m'echappe complètement et m'handicape.

Prenons un exemple concret si vous le voulez bien.
Je suis en cours de création d'un chat client/serveur. J'utilise un composant winsock. Mon timer suit l'avancé de la connexion du client au serveur et inversement.

J'aimerai maintenant executer une procédure si et seulement si mon composant winsock arrive à l'état 7 (SckConnected). Cela peut vous paraitre basique mais tant mieux, moi ça m'échappe !

Mon idée premiere était bien sur de faire une procédure du style:
If Wserveur.State = 7 Then
(hop je glisse mes procédures)
End if

Mais cette procédure s'execute avec les autres et comme il voit que mon winsock n'est pas en état 7 il passe a autre chose et n'y revient jamais. Comment faire pour qu'il verifie tout le temps ? Un autre timer ? je bloque.. merci de votre aide.

mardi 22 mai 2007 à 20:34:05 | Re : Comment une procédure peut-elle vérifier continuellement l'état d'un winsock ?

Julien237

Salut,

Dans un autre langage, une bonne solution aurait été le multi-threading, mais qui est hélas impossible en VB6.
Dans ce cas il te faut alors utiliser l'instruction DoEvents dans une boucle "infinie".
Par exemple tu pourrais imaginer une structure comme ceci :

While Wserveur.State <> 7
  DoEvents()
  'Opérations à effectuer tant qu'il n'est pas connecté
Wend
'Wserveur.State = 7
Opération à faire lorsqu'il se connecte

DoEvents permet au processus d'exécuter les message windows en attente pour ton application (comme par exemple un click sur un bouton, un déplacement de fenêtre, plein de choses...) et donc de l'empêcher de "freezer" pendant ta boucle.

Sinon l'idée d'utiliser un autre timer ne me semble pas particulièrement mauvaise non plus, à voir.


Julien.

mardi 22 mai 2007 à 22:31:41 | Re : Comment une procédure peut-elle vérifier continuellement l'état d'un winsock ?

e_NeX

Membre Club
mouais julien...  tres moyen comme solution!

faire un DoEvents te bouffera tout ton CPU!!!

en VB6 le mieux est de mettre un timer, selon moi, toutes les 100 ms qui vérifie l'état du winsock!

if winsock.state <> 7 then .....

l'état #7 veux dire que ton winsock est connecté!

ne pas oublier de laisser le winsock en mode TCP/IP et non en UDP!

bonne prog!

mardi 22 mai 2007 à 23:27:21 | Re : Comment une procédure peut-elle vérifier continuellement l'état d'un winsock ?

linux21

Merci de votre aide je pense que vos solutions vont m'aider :)
Affaire à suivre ^-^



Cette discussion est classé dans : winsock, vérifier, état, procédure, continuellement


Répondre à ce message

Sujets en rapport avec ce message

crystal 9 lié a une procédure stockée [ par nes ] nesbonjour, j'ai un petit problème,j'ai 2 états crystal dans mon programme. Ces états son reliés chaqu'une à une procédure stockée, mais lors de l'app Comment vérifier l'état d'un control [ par drakkard ] bonjour bonjour, je cherche à vérifier le statut de plusieurs controls dans un frame spécifique. Si ils sont actifs ou non et visibles ou non... mer Comment vérifier l'état d'un control [ par drakkard ] bonjour bonjour, je cherche à vérifier le statut de plusieurs controls dans un frame spécifique. Si ils sont actifs ou non et visibles ou non... mer Comment vérifier l'état d'un control [ par drakkard ] Bonjour, bonjour, je cherche à vérifier le statut de plusieurs control ( label, combo, ... ) dans un frame spécifique. Savoir si ils sont actifs ou n Comment vérifier l'état d'un control [ par drakkard ] Bonjour, bonjour, je cherche à vérifier le statut de plusieurs control ( label, combo, ... ) dans un frame spécifique. Savoir si ils sont actifs ou n Comment vérifier l'état d'un control [ par drakkard ] Bonjour, bonjour, je cherche à vérifier le statut de plusieurs control ( label, combo, ... ) dans un frame spécifique. Savoir si ils sont actifs ou n Problème Winsock [ par norton ] Hello à tous.Quand j'essaye de compiler mon programme une erreur de winsock apparaît : ERREUR DE COMPILATION: La déclarat DataReport et une procédure stockée [ par chafaqis ] salut tt le mondej'ai fait un état en utilisant datareport mais mon problème quand j'execute ma procédure dans analyseur de requete en lui affectant c Vérifier l'état d'une connexion SQL Server [ par dgmc ] bonjour a tous, je travaille sur une application en VB6 dans laquelle jutilise une connexion a sql server. Mais je dois etre capable de detecter un Déconnexion internet [ par logedu ] Je lance une connexion internet avec la procédure internetaudial de Lib wininet.dllComment faire pour l'arrêter ensuite ?Je pensais qu'il fallait util


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 7,036 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.