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.NET Discussion :

username et password par socket


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut username et password par socket
    Bonjour,

    J'aimerais communiquer avec une caméra qui a besoin d'un login et d'un password pour me renvoyer des mesures.
    Il faut utiliser un socket.
    Je ne sais pas comment on envoie un login et un password.

    Merci d'avance.

  2. #2
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Bonjour,

    je suppose que ta caméra a un protocole de communication,
    tu utilise l'outil "SerialPort" pour communiquer avec?

    PS: regarde dans la doc de la caméra si il n'y a pas des infos sur les trames à envoyer

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    non c'est une caméra cognex serie 5000,

    Je communique avec un socket et la communication utilise un protocole telnet. Donc il faut envoyer "13" en ASCII à la caméra pour valider chaque commande mais ça ne fonctionne pas comme prévu: je récupérer juste le nom de la session.

    Voici mon code:

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
     Private client As TcpClient
            Private buffer_receive() As Byte
            Private s_Adresse_IP As String
            Private i_port_ip As Int32
            Private adr_ip As IPEndPoint
            Private ip_localAddr As IPAddress
     
    #Region "constructeur: @IP, N°Port"
            Sub New(ByVal IP As String, ByVal port As Integer)
                s_Adresse_IP = IP
                i_port_ip = port
     
                Try
                    ip_localAddr = IPAddress.Parse(s_Adresse_IP)
                    adr_ip = New System.Net.IPEndPoint(ip_localAddr, i_port_ip)
                    client = New TcpClient()
                    client.Client.ReceiveTimeout = 4000
                Catch ex As Exception
                    MessageBox.Show("Erreur instanciation caméra :" + ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
                End Try
     
            End Sub
    #End Region
     
     
    #Region "Destructeur"
            Sub dispose()
                If Not client Is Nothing Then
                    client = Nothing
                End If
            End Sub
    #End Region
     
     
    #Region "Lecture du DataMatrix"
            Function lire_DM(ByVal nb_entete As Integer, ByVal longueur As Integer, ByVal longueur_totale As Integer) As String
     
                Dim DM As String = ""
     
                Dim buffer() As Byte
     
     
                Try
                    'connexion
                    client.Connect(ip_localAddr, i_port_ip)
                Catch ex As Exception
                    'message d'erreur
                    MessageBox.Show("Erreur connexion caméra :" + ex.Message, "erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
                    lire_DM = "erreur"
                    Exit Function
     
                End Try
     
                Try
     
                    '''''''''''''''''Mise en forme'''''''''''''
                    ' Mise en forme du buffer à envoyer.    Dernier caractère OU CR = 13(ASCII)
                    'buffer = System.Text.Encoding.ASCII.GetBytes("001001001")   'initialisation et codage en ASCII
                    'buffer = System.Text.Encoding.ASCII.GetBytes(CByte(Asc(Chr(13))))
                    'buffer = System.Text.Encoding.ASCII.GetBytes("GVB031")      'initialisation et codage en ASCII
                    'ReDim Preserve buffer(buffer.Length)
                    ' buffer(buffer.Length - 1) = CByte(Asc(Chr(13)))
     
     
                    ''''''''''''''''Ecriture =>envoi'''''''''''''''''''
                    'Envoie des données à un System.Net.Sockets.Socket connecté.
     
                    ' client.Client.Send(buffer)
     
                    'définit une valeur spécifiant la taille de la mémoire tampon 
                    'de réception de System.Net.Sockets.Socket.
                    client.Client.ReceiveBufferSize = longueur_totale
     
     
                    '''''''''''''Lecture =>Réception''''''''''''''''''
                    ''''''''''''''''''''''''Session'''''''''''''''''''
                    'Reçoit les données d'un System.Net.Sockets.Socket lié 
                    'dans la mémoire tampon de réception buffer_receive
                    ReDim buffer_receive(longueur_totale)       'dimensionne le buffer
                    client.Client.Receive(buffer_receive)       'déclare le buffer de réception
     
     
                    buffer = System.Text.Encoding.ASCII.GetBytes("admin")   'envoie Username
                    ReDim Preserve buffer(buffer.Length)
                    buffer(buffer.Length - 1) = CByte(Asc(Chr(13)))
                    client.Client.Send(buffer)
                    DM = System.Text.Encoding.ASCII.GetString(buffer_receive, 0, 60)
     
     
     
                Catch ex As Exception
     
                End Try
     
                'lecture du caractère de l'ensemble du string contenu dans la caméra, longueur: nbre octets à décoder
                'DM = System.Text.Encoding.ASCII.GetString(buffer_receive, nb_entete, longueur)
     
                'valeur à renvoyer
                lire_DM = DM
     
                client.Client.Close()
                client.Close()
                client = Nothing
     
            End Function
    #End Region
        End Class
    J'ai encore en commentaire de l'ancien code

Discussions similaires

  1. [MySQL] protoger une appli par des usernames et password
    Par cheik_koita dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/01/2009, 18h04
  2. Transfert de fichiers par sockets
    Par Kaori dans le forum C++
    Réponses: 19
    Dernier message: 26/01/2005, 13h58
  3. [Socket] Envoi de texte et d'objets par socket
    Par ced dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 05/08/2004, 09h07
  4. [Débutant] Envoi de fichier par socket
    Par zapho dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 26/05/2004, 18h58
  5. Login Password par défaut
    Par YanK dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 18/09/2003, 14h34

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