Envoie de data hexa avec winsock [Résolu]

jlbouvry 3 Messages postés vendredi 1 septembre 2006Date d'inscription 6 septembre 2006 Dernière intervention - 1 sept. 2006 à 22:57 - Dernière réponse : jlbouvry 3 Messages postés vendredi 1 septembre 2006Date d'inscription 6 septembre 2006 Dernière intervention
- 6 sept. 2006 à 07:05
Je cherche a envoyer sous winsock de l 'hexa (DOMOTIQUE) mais celui me le transforme en "UNICODE"
wins.senddata ( ) auriez vous une solution Merci de vos reponses a un débutant
jluc
Afficher la suite 

4 réponses

Répondre au sujet
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 2 sept. 2006 à 01:35
+3
Utile
Salut
En Unicode ?
Pour transmettre des infos en hexa, il te suffit d'expédier un texte dont les caractères sont les codes ascii correspondants à tes codes hexa.
Exemple : Pour envoyer &h12   -->  monWS.SendData Chr$(Val("&h12"))
Bien sûr, à la réception, tu récupèreras forcément lma même chose.
Exemple : Recevoir &h12
MonWS.GetData maChaine
For r = 1 To Len(maChaine)
   Debug.Print Asc(Mid$(maChaine, r, 1))   ' en décimal
   Debug.Print "&h" & Hex(Asc(Mid$(maChaine, r, 1)))   ' en hexa
Next r

Dis nous pourquoi tu penses à de l'unicode ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Jack
jlbouvry 3 Messages postés vendredi 1 septembre 2006Date d'inscription 6 septembre 2006 Dernière intervention - 2 sept. 2006 à 09:22
0
Utile
Merci Champion du monde de boule de cristal - 2005
 Grâce a tes bon sévices heu Service j' ai trouvè j' etais dans l 'erreur avec UNICODE sur 4 bit ...
Winsock me le transformait en ASCII .
Voici mon début de code qui fonctionne
Private Sub Command1_Click()


'ALLUME UN ORDI VIA un RESEAU LAN WakeOnlan (01-09-2006)
'-Config dans le setup bios ACPI lan Enabled
'-Ipconfig /all pour recupèrè l' adresse MAC du client
'-Envoi de 6 FF puis 16 fois l' add MAC
'protocol UDP dans l'OCX


' provisoir saisie à l'installe EN STRING OU maillot de bain :=))
Dim OUTData(101) As Byte


'exemple d' adresse MAC

Addmac1(1) = "0"
Addmac1(2) = "0"
Addmac1(3) = "1"
Addmac1(4) = "5"
Addmac1(5) = "F"
Addmac1(6) = "2"
Addmac1(7) = "6"
Addmac1(8) = "F"
Addmac1(9) = "F"
Addmac1(10) = "0"
Addmac1(11) = "A"
Addmac1(12) = "2"


'ENTETE 12 * F
For i = 0 To 5
OUTData(i) = "255"
Next i
'rassemble en couples les adresses macs en couples puis convertion
'de l'hexa en decimal pour le mettre 16 FOIS DE SUITE
'dans un tableau de Byte
For i = 6 To 96 Step 6
  OUTData(i) = Val("&H" & (Addmac1(1) & Addmac1(2)))
Next i
For i = 7 To 97 Step 6
   OUTData(i) = Val("&H" & (Addmac1(3) & Addmac1(4)))
Next i
For i = 8 To 98 Step 6
    OUTData(i) = Val("&H" & (Addmac1(5) & Addmac1(6)))
Next i
For i = 9 To 99 Step 6
    OUTData(i) = Val("&H" & (Addmac1(7) & Addmac1(8)))
Next i
For i = 10 To 100 Step 6
    OUTData(i) = Val("&H" & (Addmac1(9) & Addmac1(10)))
Next i
For i = 11 To 101 Step 6
    OUTData(i) = Val("&H" & (Addmac1(11) & Addmac1(12)))
Next i


Winsock1.SendData (OUTData)
'OUAAHHH cela fonctionne même en wifi
Winsock1.Close
End Sub

Private Sub Form_Load()
Winsock1.RemoteHost = "192.168.30.255" 'Multicast
RemoteHostIP = "192.168.30.255"
RemotePort = 7


Label1.Caption = Winsock1.LocalHostName
Label2.Caption = Winsock1.LocalIP
Label3.Caption = RemoteHostIP
Winsock1.LocalPort = 7
List1.AddItem ("A l'écoute du port:" & Winsock1.LocalPort)

End Sub
Commenter la réponse de jlbouvry
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 3 sept. 2006 à 01:15
0
Utile
Source intéressante : Publie la quand elle sera au point, ça pourra en intéresser plus d'un.
Rappel : Pour mettre en écoute un socket, il faut soit utiliser .Listen en TCP/IP, soit .Bind en UDP
D'ailleurs, tu ne précises pas le protocole dans l'init de ton socket : à faire pour éviter les bugs
Commenter la réponse de cs_Jack
jlbouvry 3 Messages postés vendredi 1 septembre 2006Date d'inscription 6 septembre 2006 Dernière intervention - 6 sept. 2006 à 07:05
0
Utile
Bonjour
La machine distante est déjà à l' écoute avec le WAKE ON LINE et donc j'utilise le prototocole UDP.
winsock1.protocol = 0
Oui bien sur je vais le publier.
Commenter la réponse de jlbouvry

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.