jlbouvry
Messages postés3Date d'inscriptionvendredi 1 septembre 2006StatutMembreDernière intervention 6 septembre 2006
-
1 sept. 2006 à 22:57
jlbouvry
Messages postés3Date d'inscriptionvendredi 1 septembre 2006StatutMembreDerniè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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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
jlbouvry
Messages postés3Date d'inscriptionvendredi 1 septembre 2006StatutMembreDerniè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
'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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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
jlbouvry
Messages postés3Date d'inscriptionvendredi 1 septembre 2006StatutMembreDerniè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.