IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Utilisation du controle winsock


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Février 2007
    Messages : 35
    Par défaut Utilisation du controle winsock
    Bonjour,

    je voudrais utiliser le composant winsock avec un indexage. on m'a fait part d'une solution dans un autre post mais je me retrouve avec une erreur de compilation: la procédure n'existe pas ou la procedure a deja ce nom.
    code qui donne une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Winsock1_DataArrival(ByVal datalength As Long, i As Integer)
    code qui fonctionne mais avec un seul winsock:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Winsock1_DataArrival(ByVal datalength As Long)
    datalength étant ce qui arrive du controle et i l'index.
    si quelqu'un pouvais me donner une piste sur l'utilisation du controle winsock avec un index!!

  2. #2
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Dans l'autre post, je crois qu'il était question de

    Private Sub Winsock1_DataArrival(ByVal datalength As Long, Index As Integer) 5tu peux laisser "i" bien sûr, c'est juste une question d'habitude perso )

    et faudrait surtout voir ce que tu mets comme code derrière...

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Février 2007
    Messages : 35
    Par défaut
    ben que se soit i ou index je pense que c'est pareil!
    le code que je veut mettre est la meme chose que tout a l'heure. en fait je veut recevoir des données de winsock1(i ou index), winsock1(i+1), winsock(i+2), etc... et tout cela en meme temps.

    si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Winsock_DataArrival datalength, appareil
    et que appareil faut 1,2,3,... est ce que je vais recevoir sucessivement les données de winsock(1), winsock(2),....??

  4. #4
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    peux tu nous montrer ton code ?

  5. #5
    Membre averti
    Inscrit en
    Février 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Février 2007
    Messages : 35
    Par défaut
    voici le code qui gere la connection et la demande de lecture de chaque poste distant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    for appareil=0 to nbreapp
     
    If (Winsock(appareil).State <> sckClosed) Then
            Winsock(appareil).Close
        End If
     
        If attente_donnee = False Then
            Winsock(appareil).RemoteHost = ajout.adresse(app)
            Winsock(appareil).connect
            StartTime = Timer
            Fin = 0
     
            Do While (Winsock(appareil).State <> 7) And (Timer < StartTime + 8)
                If Winsock(appareil).State = 9 Then
                    Winsock(appareil).Close
                    Winsock(appareil).connect
                End If
     
                If Fin <> 1 Then
                    lstinfo.AddItem "connection en cours a " & ajout.adresse(app1)
                    Insere_FicTxt Date & " " & Time & " connection en cours a " & ajout.adresse(app1), "c:\connections.txt"
                    Fin = 1
                End If
            DoEvents
            Loop
     
                If (Winsock(appareil).State = 7) Then
                    lstinfo.AddItem "Connecté a " & ajout.adresse(app1)
                    Insere_FicTxt Date & " " & Time & " Connecté a " & ajout.adresse(app1), "c:\connections.txt"
                    lecture = True
                End If
    next appareil

    et maintenant voici le code qui attend les données et c'est la que ca va plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Private Sub Winsock_DataArrival(ByVal datalength As Long, i As Integer)
    Dim l As Integer
    Dim toto(255) As String
    Dim trame(255) As Byte
    Dim b As Byte
    Dim h As Integer
    Dim j As Byte
    Dim resultat As String
    Dim conv As String
    Dim buffer As String
    Dim Temp As String
    Dim ValHexa As String
     
    Dim i As Integer
    Dim z As Integer
    Dim Tablo() As String
     
        For i = 1 To datalength
            Winsock(i).GetData b
            MbusByteArray(i) = b
        Next
    end function
    en fait au moment de la réception des données j'ai une erreur qui me dis que le controle existe déja

  6. #6
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    voila pourquoi je mets Index dans mes procédures... :

    Tu mets :
    Private Sub Winsock_DataArrival(ByVal datalength As Long, i As Integer)

    Et plus loin, dans la même procédure

    Dim i As Integer

    Te voila donc avec deux fois "i" déclaré, ça fait une fois de trop
    Puisque c'est le controle d'index "i" qui va recevoir cet événement, tu n'as pas besoin de la boucle For i etc... et pas besoin de ton instruction Dim i

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/09/2006, 16h47
  2. Utilisation du control winsock
    Par abdallah dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/08/2006, 19h55
  3. Utilisation du control "calandar" sous excel.
    Par franckh99 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/12/2005, 18h07
  4. [débutant] Utilisation du controle CListCtrl
    Par babemagus dans le forum MFC
    Réponses: 3
    Dernier message: 17/11/2005, 14h50
  5. [ActiveX] Peut-on utiliser un Controle ActiveX avec Java
    Par waldo2188 dans le forum Multimédia
    Réponses: 2
    Dernier message: 22/02/2005, 11h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo