Module - winsock state

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 827 fois - Téléchargée 20 fois

Contenu du snippet

Voilà, ca doit déjà exister sur Vbfrance, mais mon module est tres court, juste un split et le renvoi du statut en String dans une variable ...

Exemple pour afficher le status dans un MsgBox

Dim Sts As String
Sts = WinSocketState(Winsock1)
MsgBox Sts

Source / Exemple :


Public Function WinSocketState(Socket As Winsock) As String
Dim State() As String

State = Split("Fermé.,Ouvert.,En écoute ...,En Attente ...,Résolution DNS ...,Hote résolu !,Connexion ...,Connecté.,Fermeture ...,Erreur !", ",")

WinSocketState = State(Socket.State)
End Function

Conclusion :


Heuu, je sais pas si l'idée du Split est tres bonne, mais moi j'aime bien, c'est court :)

Merci pour vos commentaires ... :)

Cordialement,
Effervescence Server

A voir également

Ajouter un commentaire Commentaires
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
Ya aussi ça :

Public Function WinSocketState(ByRef Socket As Winsock) As String
WinSocketState = Split("Fermé.,Ouvert.,En écoute ...,En Attente ...,Résolution DNS ...,Hote résolu !,Connexion ...,Connecté.,Fermeture ...,Erreur !", ",")(Socket.State)
End Function

Ce n'est pas plus court mais il faut le connaitre rien que pour sa syntaxe particuliere.

@+
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
Je pense surtout que ce code serait mieu chez codyx.org car il faut avoir au moins 5 lignes de code (hors declaration) pour figurer dans la rubrique "code"

Merci de ta comprehension

@+
Messages postés
86
Date d'inscription
mardi 31 août 2004
Statut
Membre
Dernière intervention
19 août 2008

Merci pour tes codes !
Et dire que je faisais encore pire que le classic, j'utilisais des IF pour chaque état :/ mon split comparé à mes If était nettement meilleur :D

Mais merci pour les 2 premiers code !
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
Je pense qu'il est préférable de passer le State du Socket en parametre plutot que le Socket lui même. C'est personnel, certes, mais ca rend la chose plus facilement réutilisable (pas lié au composant Socket).

Voici des implémentations différentes de la chose.

encore plus court:

Public Function WinSocketState(ByVal veState As StateConstants) As String
WinSocketState = Choose(1 + veState, "Fermé.", "Ouvert.", "En écoute ...", "En Attente ...", "Résolution DNS ...", "Hote résolu !", "Connexion ...", "Connecté.", "Fermeture ...", "Erreur !")
End Function

le plus proche de ton SPlit, en plus efficace :

Public Function WinSocketState(ByVal veState As StateConstants) As String
Static zStates As Variant
If Not IsArray(zStates) Then
zStates = Array("Fermé.", "Ouvert.", "En écoute ...", "En Attente ...", "Résolution DNS ...", "Hote résolu !", "Connexion ...", "Connecté.", "Fermeture ...", "Erreur !")
End If
WinSocketState = zStates(veState)
End Function


enfin, le code "classique" :

Public Function WinSocketState(ByVal veState As StateConstants) As String
Select Case veState
Case StateConstants.sckClosed
WinSocketState = "Fermé."
Case StateConstants.sckOpen
WinSocketState = "Ouvert."
Case StateConstants.sckListening
WinSocketState = "En écoute..."
Case StateConstants.sckConnectionPending
WinSocketState = "En Attente..."
Case StateConstants.sckResolvingHost
WinSocketState = "Résolution DNS..."
Case StateConstants.sckHostResolved
WinSocketState = "Hôte résolu !"
Case StateConstants.sckConnecting
WinSocketState = "Connexion..."
Case StateConstants.sckConnected
WinSocketState = "Connecté."
Case StateConstants.sckClosing
WinSocketState = "Fermeture..."
Case Else
WinSocketState = "Erreur !"
End Select
End Function

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.