OVH Cloud OVH Cloud

Qu'est ce que c'est comme variable ? Et comment convertir en chaîne de caractères

28 réponses
Avatar
Florence
Bonsoir à tous, pourriez vous me dire à quelle type de variable correspond
cette occurence ?

FF FF FF FF 49 02 67 61 6D 65 32 78 73 2E 63 6F

Et pourriez vous m'indiquer comment convertir cela en chaîne de caractère
lisible.

Merci pour vos réponses.

10 réponses

1 2 3
Avatar
patrice
"Florence" a écrit dans le message de
news:457d2fc7$0$25895$
J'ai pourtant bien lue la documentation mais j'ai des difficultées. :'-(
Port c'est le port de la machine distante sur lequel devra ce connecter le
client et IP l'ip de la machine serveur.



l'erreur est ici

socketcree c'est pour l'emetteur = ton poste
port= n° sur ton poste
ip= ip de ton interface (facultatif, utilisé qd tu a >1 carte réseau

en fait, ca correspond à l'adresse pour la réponse
Avatar
Florence
Ok, ben oui, forcément, ca ne pouvait que merder...

Alors autre question, comment je dois procéder pour envoyer une requête sur
le serveur distant et pour en lire la réponse ?

Parce que du coup, je ne vois plus du tout comment je dois procéder.


"patrice" a écrit dans le message de
news: 457d377f$0$2192$
"Florence" a écrit dans le message de
news:457d2fc7$0$25895$
J'ai pourtant bien lue la documentation mais j'ai des difficultées. :'-(
Port c'est le port de la machine distante sur lequel devra ce connecter
le
client et IP l'ip de la machine serveur.



l'erreur est ici

socketcree c'est pour l'emetteur = ton poste
port= n° sur ton poste
ip= ip de ton interface (facultatif, utilisé qd tu a >1 carte réseau

en fait, ca correspond à l'adresse pour la réponse







Avatar
patrice
"Florence" a écrit dans le message de
news:457d6214$0$25718$
Ok, ben oui, forcément, ca ne pouvait que merder...

Alors autre question, comment je dois procéder pour envoyer une requête


sur
le serveur distant et pour en lire la réponse ?

Parce que du coup, je ne vois plus du tout comment je dois procéder.




SocketEcrit(<Nom de la socket>, <Message> [, <Adresse de destination>, <Port
de destination>])
les 3 et 4ieme param donne la destination

socketlit pour la réponse
Avatar
Florence
Ok, bon, j'ai lu et relu la documentation. J'en suis la :

J'ai créé un bouton qui me renvoi dans une fenêtre Info ce que raconte le
serveur :

CreeSocket est un booléen
// Ouverture du Port sur le client
CreeSocket=SocketCréeUDP("Test", 27015)
// Une fois ma Socket crée sur le client, j'envoie un packet avec la
commande SocketEcrit dans une variable de type buffer
Ecriture est un buffer
Ecriture=SocketEcrit("Test", "xFFxFFxFFxFFrulesn", 27015,
"88.191.28.112")
// Maintenant je lit ce qui est écrit dans ma variable Ecriture
Info(SocketLit("Test", Faux, 15000))

Au bout des 15 secondes, ma fenetre info s'affiche mais il n'y a rien
dedans.

1/ Est ce que j'utilise correctement mes commandes :
- 1 Création Socket UDP sur mon client
- 2 Envoie d'une commande sur le serveur (Je pense que je commets des
erreurs à cet endroit mais je ne comprends rien au type binaire. (Voir
messages précédents)
3 - Lecture de ce que j'ai reçu du serveur.

2/ Pourrais tu m'éclairer un peu plus car la je dois avouer que je bloque
complétement. :'-(

Merci.



"Florence" a écrit dans le message de news:
457d3388$0$23295$
En fait, si je suis ton raisonnement,

Je dois créer ma connexion en local :

C'est à dire que le port reste le même mais que l'IP est localhost.

Sachant que mon serveur ne se trouve pas sur la machine ou est installé le
client.

Donc pour envoyer des données, je vais utiliser la commande SocketEcrit et
SocketLit

Mais si je ne spécifie pas d'IP distante, mes requêtes n'arriveront
jamais.

"patrice" a écrit dans le message de
news: 457d1cbe$0$9025$
"Florence" a écrit dans le message de
news:457c40a3$0$17004$

Et lorsque je clique sur mon bouton pour tester la connexion voici ce
qui


la
réponse que j'obtient :

Erreur en associant la socket au port 27015 sur la machine 88.191.28.112
La socket a renvoyé l'erreur système suivante :
<WSAEADDRNOTAVAIL>

1/ Qu'est ce que cela veut dire ?


l'adresse n'est pas disponible

2/ Comment solutionner mon problème ?


lire la doc :)

notemment la fin de la phrase : Adresse IP sur laquelle la socket doit
être
créée sur le poste en cours
perso, je la mettrai pas cette adresse








Avatar
patrice
Florence a écrit :
// Maintenant je lit ce qui est écrit dans ma variable Ecriture
Info(SocketLit("Test", Faux, 15000))

Au bout des 15 secondes, ma fenetre info s'affiche mais il n'y a rien
dedans.


c'est pas forcement affichable

buf est un buffer=socketlit()
info(taille(buf))


1/ Est ce que j'utilise correctement mes commandes :
- 1 Création Socket UDP sur mon client
- 2 Envoie d'une commande sur le serveur (Je pense que je commets des
erreurs à cet endroit mais je ne comprends rien au type binaire. (Voir
messages précédents)
3 - Lecture de ce que j'ai reçu du serveur.


vivisésa
Avatar
Florence
Bon, j'ai utilisé votre réponse mais j'ai l'impression que cela ne
fonctionne toujours pas.

Ma fenêtre info me retourne en valeur 0

J'ai essayé en utilisant la commande SocketClientInto

avec Toto comme chaîne.

SocketPort me renvoie -1
SocketAdresse provoque une erreur fatale en me précisant que cela aurait du
me renvoyer une valeur.

La je bloque.


"patrice" a écrit dans le message de news:
457db540$0$1423$
Florence a écrit :
// Maintenant je lit ce qui est écrit dans ma variable Ecriture
Info(SocketLit("Test", Faux, 15000))

Au bout des 15 secondes, ma fenetre info s'affiche mais il n'y a rien
dedans.


c'est pas forcement affichable

buf est un buffer=socketlit()
info(taille(buf))


1/ Est ce que j'utilise correctement mes commandes :
- 1 Création Socket UDP sur mon client
- 2 Envoie d'une commande sur le serveur (Je pense que je commets des
erreurs à cet endroit mais je ne comprends rien au type binaire. (Voir
messages précédents)
3 - Lecture de ce que j'ai reçu du serveur.


vivisésa


Avatar
RF
Florence a couché sur son écran :

Ecriture est un buffer
Ecriture=SocketEcrit("Test", "xFFxFFxFFxFFrulesn", 27015,
"88.191.28.112")



???

Ecriture est un buffer="ce que tu veux ecrire"
SocketEcrit("Test",Ecriture[[A
taille(Ecriture)]],27015,"88.191.28.112")
Avatar
Florence
Je comprend pas tout la...

La commande à envoyer au serveur est :

FF FF FF FF 54 53 6F 75 72 63 65 20 45 6E 67 69 6E 65 20 51 75 65 72 79 00

en "byte" (Je ne sais pas à quoi correspond cette variable en français)

Donc, si je résume tes lignes

Commande est un buffer
Commande="FF FF FF FF 54 53 6F 75 72 63 65 20 45 6E 67 69 6E 65 20 51 75 65
72 79 00"
SocketEcrit("Test", Commande[[Ataille(Commande)]], 27015, "88.191.28.112")

C'est bien ça ?


SocketEcr
"RF" a écrit dans le message de news:

Florence a couché sur son écran :

Ecriture est un buffer
Ecriture=SocketEcrit("Test", "xFFxFFxFFxFFrulesn", 27015,
"88.191.28.112")



???

Ecriture est un buffer="ce que tu veux ecrire"
SocketEcrit("Test",Ecriture[[A taille(Ecriture)]],27015,"88.191.28.112")




Avatar
RF
Florence a exprimé avec précision :

en "byte" (Je ne sais pas à quoi correspond cette variable en français)



C'est un entier sans signe sur 1 octet.

C'est bien ça ?



Pas vraiment non!

Déjà, après relecture, depuis le début tu as fait une inversion entre
adresse IP et port, ensuite tu confonds les types de variables...

Comme ça, à froid, j'aurai plûtot fait:

sCommande est une chaîne = "FF FF FF FF 54 53 6F 75 72 63 65 20 45 6E
67 69 6E 65 20 51 75 65 72 79 00"
sTraitement est une chaîne
bfCommande est un Buffer = ""

POUR TOUTE CHAINE sTraitement DE sCommande SEPAREE PAR " "
nByte est un entier sans signe sur 1 octet = Val(straitement)
bfCommande[[Taille(bfCommande)+1]]=nByte
FIN

SocketEcrit("SocketUDP", bfCommande[[A taille(bfCommande)]],
"88.191.28.112", 27015)
Avatar
RF
Il se trouve que RF a formulé :

SocketEcrit("SocketUDP", bfCommande[[A taille(bfCommande)]], "88.191.28.112",
27015)



La socket ayant été préalablement créée par un:

SocketCréeUDP("SocketUDP",27015)

et aoptimisée par un :

Socket.Option = SocketOptimiseConnexionIP
1 2 3