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.

8 réponses

1 2 3
Avatar
Florence
Ok Ok, a priori, j'ai effectivement pas mal de soucis à me faire alors.

Bon, j'essaie de résumer mon code alors :

En français, ca nous donne :

Création de la socket UDP
Intégration de la commande dans une variable de type chaîne
Traitement de la variable
Envoie de la commande
Lecture de la réponse
Fermeture de la Connexion.

En W-Langage :

Cree_Connexion est un booléen

Cree_Connexion=SocketCréeUDP("HLDS", 7135)

Commande_Serveur est une chaîne

Commande_Serveur="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"

Traitement_Commande est une chaîne

Buf_Commande_Serveur est un Buffer

POUR TOUTE CHAINE Traitement_Commande DE Commande_Serveur SEPAREE PAR " "

nByte est un entier sans signe sur 1 octet

nByte=Val(Traitement_Commande)

Buf_Commande_Serveur[[Taille(Buf_Commande_Serveur)+1]]=nByte

FIN

SocketEcrit("HLDS", Buf_Commande_Serveur[[A Taille(Buf_Commande_Serveur)]],
"88.191.28.112", 27015)



Voila ou j'en suis. Donc, si mon serveur reçoit la commande, comment en lire
la réponse dans une fenêtre info déja. Ca pourrait être un bon début :-)

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

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




Avatar
Florence
Ce code me permet d'avoir un buffer d'une taille de 4 Octet mais je n'arrive
pas à lire ce qu'il y a dedans dana ma fenêtre info ca m'affiche un carré :

Connex_Socket est un booléen

Connex_Socket=SocketCréeUDP("Status", 27015)

Ecrit_Socket est un Buffer

Ecrit_Socket=SocketEcrit("Status", "0xFF FF FF FF FF FF FF FF",
"IPduserveur", 27015)

Lit_Socket est un Buffer

Lit_Socket=SocketLit("Status", Faux, 2000, 150000)

Info(Taille(Ecrit_Socket))



"Florence" a écrit dans le message de news:
458169eb$0$30545$
Ok Ok, a priori, j'ai effectivement pas mal de soucis à me faire alors.

Bon, j'essaie de résumer mon code alors :

En français, ca nous donne :

Création de la socket UDP
Intégration de la commande dans une variable de type chaîne
Traitement de la variable
Envoie de la commande
Lecture de la réponse
Fermeture de la Connexion.

En W-Langage :

Cree_Connexion est un booléen

Cree_Connexion=SocketCréeUDP("HLDS", 7135)

Commande_Serveur est une chaîne

Commande_Serveur="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"

Traitement_Commande est une chaîne

Buf_Commande_Serveur est un Buffer

POUR TOUTE CHAINE Traitement_Commande DE Commande_Serveur SEPAREE PAR " "

nByte est un entier sans signe sur 1 octet

nByte=Val(Traitement_Commande)

Buf_Commande_Serveur[[Taille(Buf_Commande_Serveur)+1]]=nByte

FIN

SocketEcrit("HLDS", Buf_Commande_Serveur[[A
Taille(Buf_Commande_Serveur)]], "88.191.28.112", 27015)



Voila ou j'en suis. Donc, si mon serveur reçoit la commande, comment en
lire la réponse dans une fenêtre info déja. Ca pourrait être un bon début
:-)

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

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








Avatar
Romain PETIT
Florence a formulé ce jeudi :
Ce code me permet d'avoir un buffer d'une taille de 4 Octet mais je n'arrive
pas à lire ce qu'il y a dedans dana ma fenêtre info ca m'affiche un carré :

Connex_Socket est un booléen
Connex_Socket=SocketCréeUDP("Status", 27015)
Ecrit_Socket est un Buffer
Ecrit_Socket=SocketEcrit("Status", "0xFF FF FF FF FF FF FF FF",
"IPduserveur", 27015)
Lit_Socket est un Buffer
Lit_Socket=SocketLit("Status", Faux, 2000, 150000)
Info(Taille(Ecrit_Socket))



Dur métier, l'informatique.

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Florence
Ha... des réponses constructives comme je les aiment...


"Romain PETIT" a écrit dans le message de news:

Florence a formulé ce jeudi :
Ce code me permet d'avoir un buffer d'une taille de 4 Octet mais je
n'arrive pas à lire ce qu'il y a dedans dana ma fenêtre info ca m'affiche
un carré :

Connex_Socket est un booléen
Connex_Socket=SocketCréeUDP("Status", 27015)
Ecrit_Socket est un Buffer
Ecrit_Socket=SocketEcrit("Status", "0xFF FF FF FF FF FF FF FF",
"IPduserveur", 27015)
Lit_Socket est un Buffer
Lit_Socket=SocketLit("Status", Faux, 2000, 150000)
Info(Taille(Ecrit_Socket))



Dur métier, l'informatique.

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)




Avatar
Romain PETIT
Florence a pensé très fort :
Ha... des réponses constructives comme je les aiment...



En même temps, ne t'attend pas à ce qu'on te mâche le travail.

Le plaisir de développer (si si, moi j'y prend plaisir), c'est aussi de
tatonner, de chercher, et surtout de réussir à trouver la solution par
soi-même.
Le recours à un forum doit à mon avis être la solution ultime, quand on
est bloqué ou qu'on a le sentiment de partir du mauvais côté.
Avant il faut apprendre à maîtriser son outil, lire la documentation.

Relis ton code que tu as publié (qui d'ailleurs n'est assurément pas
celui qui a produit ton "carré"...)
Relis l'aide... et prend plaisir à développer.

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Florence
Je demande pas que l'on me mâche le travail ni qu'on m'écrive mon code.

Mais même après relecture de la doc et divers essais j'en suis tjrs au même
point et j'ai vraiment l'impression de tourner en rond. Et c'est rageant
pour une débutante comme moi de ne pas réussir à surmonter cet obstacle.


"Romain PETIT" a écrit dans le message de news:

Florence a pensé très fort :
Ha... des réponses constructives comme je les aiment...



En même temps, ne t'attend pas à ce qu'on te mâche le travail.

Le plaisir de développer (si si, moi j'y prend plaisir), c'est aussi de
tatonner, de chercher, et surtout de réussir à trouver la solution par
soi-même.
Le recours à un forum doit à mon avis être la solution ultime, quand on
est bloqué ou qu'on a le sentiment de partir du mauvais côté.
Avant il faut apprendre à maîtriser son outil, lire la documentation.

Relis ton code que tu as publié (qui d'ailleurs n'est assurément pas celui
qui a produit ton "carré"...)
Relis l'aide... et prend plaisir à développer.

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)




Avatar
RF
Florence a couché sur son écran :

Je demande pas que l'on me mâche le travail ni qu'on m'écrive mon code.



Pourtant, c'est bien ce que j'ai l'impression de faire!

Mais même après relecture de la doc et divers essais j'en suis tjrs au même
point et j'ai vraiment l'impression de tourner en rond. Et c'est rageant pour
une débutante comme moi de ne pas réussir à surmonter cet obstacle.



Commencer par les sockets n'est pas la meilleure chose à faire mais
bon...

Allez, ceci sera ma dernière aide sur le sujet, après faudra plancher
un peu toute seule.

// Création de la socket UDP
Socket.Option = SocketOptimiseConnexionIP
SocketCréeUDP("SocketUDP",27015)

// Envoyer une commande au serveur
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)

// Lecture de la réponse
bfCommande=SocketLit("SocketUDP", vrai)

Après, il faut que tu étudies la réponse par rapport au protocole.
Cette réponse se trouve dans "bfCommande" sous forme d'octets. Chaque
octet est accessible par son index:

CECI EST UN EXEMPLE QUI NE CORRESPOND PAS AU PROTOCOLE QUE TU SOUHAITES
GERER:

Si ta réponse est constituée de 4 octets et que ton protocole t'annonce
qu'elle est codée de la sorte:

* D'un entier non signé de 1 octet
* D'un entier non signé de 1 octet
* D'un entier de 2 octets

Tu feras (Toujours un exemple!)

n1 est un entier sans signe sur 1 octet¿Commande[[1]]
n2 est un entier sans signe sur 1 octet¿Commande[[2]]
n3 est un entier sur 2 octets¿Commande[[3 a 4]]

Après tu gères ta réponse toujours par rapport au protocole.

Ensuite, pour gérer correctement tes sockets, il faudra que tu jettes
un oeil sur les threads...

Bonne chance pour la suite!
Avatar
Florence
Merci pour cette réponse plus que constructive.

Avec ceci, je commence à comprendre le fonctionnement du protocole UDP et je
comprends aussi comment mettre mon code en place.

Réponse très bien rédigée et très bien expliquée. Merci beaucoup.


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

Florence a couché sur son écran :

Je demande pas que l'on me mâche le travail ni qu'on m'écrive mon code.



Pourtant, c'est bien ce que j'ai l'impression de faire!

Mais même après relecture de la doc et divers essais j'en suis tjrs au
même point et j'ai vraiment l'impression de tourner en rond. Et c'est
rageant pour une débutante comme moi de ne pas réussir à surmonter cet
obstacle.



Commencer par les sockets n'est pas la meilleure chose à faire mais bon...

Allez, ceci sera ma dernière aide sur le sujet, après faudra plancher un
peu toute seule.

// Création de la socket UDP
Socket.Option = SocketOptimiseConnexionIP
SocketCréeUDP("SocketUDP",27015)

// Envoyer une commande au serveur
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)

// Lecture de la réponse
bfCommande=SocketLit("SocketUDP", vrai)

Après, il faut que tu étudies la réponse par rapport au protocole. Cette
réponse se trouve dans "bfCommande" sous forme d'octets. Chaque octet est
accessible par son index:

CECI EST UN EXEMPLE QUI NE CORRESPOND PAS AU PROTOCOLE QUE TU SOUHAITES
GERER:

Si ta réponse est constituée de 4 octets et que ton protocole t'annonce
qu'elle est codée de la sorte:

* D'un entier non signé de 1 octet
* D'un entier non signé de 1 octet
* D'un entier de 2 octets

Tu feras (Toujours un exemple!)

n1 est un entier sans signe sur 1 octet¿Commande[[1]]
n2 est un entier sans signe sur 1 octet¿Commande[[2]]
n3 est un entier sur 2 octets¿Commande[[3 a 4]]

Après tu gères ta réponse toujours par rapport au protocole.

Ensuite, pour gérer correctement tes sockets, il faudra que tu jettes un
oeil sur les threads...

Bonne chance pour la suite!




1 2 3