Envoie de data hexa avec winsock

Résolu
jlbouvry Messages postés 3 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 6 septembre 2006 - 1 sept. 2006 à 22:57
jlbouvry Messages postés 3 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 6 septembre 2006 - 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

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
2 sept. 2006 à 01:35
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
3
jlbouvry Messages postés 3 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 6 septembre 2006
2 sept. 2006 à 09:22
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
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
3 sept. 2006 à 01:15
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
0
jlbouvry Messages postés 3 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 6 septembre 2006
6 sept. 2006 à 07:05
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.
0
Rejoignez-nous