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 :

VB .NET n'accepte pas les chr(127+


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 54
    Points : 49
    Points
    49
    Par défaut VB .NET n'accepte pas les chr(127+
    Bonjour,
    je commence une appli utilisant des sockets (console pour le moment), et j'ai besoin d'envoyer le caractère chr(156)
    sauf que je viens de remarquer pendant le débogage que tous les caractères au-dessus de 127 (-> chr(128), chr(129), chr(130)...) sont transformés en chr(63) ?!?
    Comment faire pour envoyer ces caractères ?

    Un petit tour sur la doc m'informe que la valeur maximale de chr() est 255, je suis pourtant dans les normes. L'erreur vient d'autre part.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim _socket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
     
                _socket.Connect("127.0.0.1", 7915)
                connUsername = Chr(&H18) & Chr(&H0) & Chr(&H0) & Chr(&H0) & Chr(&H1) & Chr(&H0) & Chr(&H0) & Chr(&H0) & "ysatc" & Chr(&H0) & Chr(&H0) & Chr(&H0) & Chr(&H0) & Chr(&H0) & Chr(&H0) & Chr(&H0) & Chr(&H0) & Chr(&H0) & Chr(&H0) & Chr(&H0) & ChrW(156) & Chr(&H1A) & Chr(&H32) & Chr(&H1)
                Dim Message As [Byte]() = System.Text.Encoding.ASCII.GetBytes(connUsername)
                _socket.Send(Message, Message.Length, SocketFlags.None)

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 219
    Points : 227
    Points
    227
    Par défaut Salut vincent web
    À la place de ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connUsername = Chr(&H18)
    , pourquoi tu fais pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connUsername = "Vincent"
    Bonne journée
    Alex

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 54
    Points : 49
    Points
    49
    Par défaut
    Tout simple parceque ce n'est pas moi qui est codé le serveur, et c'est la syntaxe du serveur.
    J'ai pu contourné avec System.Text.Encoding.Default.GetBytes() au lieu de System.Text.Encoding.ASCII.GetBytes()
    mais je ne comprend pas toujours pas pourquoi ça ne marche pas.

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 219
    Points : 227
    Points
    227
    Par défaut Salut vincent web
    Est ce qu'il y a une sorte d'encodage qui est le ANSI?
    Si non, je donne ma langue au chat...
    Alex

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    J'ai le meme probleme, j'arrive a envoyer le bon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sock.Send(BitConverter.GetBytes(156))
    mais je ne sais pas comment faire pour envoyer des

    et un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BitConverter.GetBytes(156)
    dans le meme sock.send!!

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Points : 459
    Points
    459
    Par défaut
    Bonsoir

    je ne sais pas quel est le type de ta variable 'connUsername ' mais ce qui est sûr c'est que l'encodage defaut de .Net est l'UTF8, donc plage de charactère 0->127. Tu effecture bien un encodage en Ansi mais il est déjà trop tard je pense, tu as affecté ta variable .
    Voilà une explication malheureusement je ne vois de solution directe, peut etre changer l'encodage par defaul ...

    Bonne soirée

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Je crois que j'ai trouvé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Imports System.IO
    Dim ms As MemoryStream = New MemoryStream(3)
                ms.Write(BitConverter.GetBytes(Convert.ToUInt16(18)), 0, 1)
                ms.Write(BitConverter.GetBytes(Convert.ToUInt16(0)), 0, 1)
    ...
                ms.Write(BitConverter.GetBytes(Convert.ToUInt16(156)), 0, 1)
                _socket.Send(ms.ToArray())
    Voili!


Discussions similaires

  1. Réponses: 0
    Dernier message: 05/11/2009, 08h56
  2. Réponses: 1
    Dernier message: 24/11/2008, 12h07
  3. oracle 10g XE n'accepte pas les accents
    Par gnaoui_9999 dans le forum Oracle
    Réponses: 6
    Dernier message: 27/08/2007, 17h47
  4. n'accepte pas les apostrophes
    Par flo456 dans le forum Langage
    Réponses: 6
    Dernier message: 18/09/2006, 14h14
  5. La fonction BuilCriteria n'accepte pas les points
    Par Tofalu dans le forum Access
    Réponses: 3
    Dernier message: 10/07/2006, 12h00

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