[Resolu] Le chr(0) <<NULL>>

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
yoman64
Messages : 14
Inscription : jeu. 18/oct./2007 20:15

[Resolu] Le chr(0) <<NULL>>

Message par yoman64 »

Salut je souhaite développer une aplication réseau et jusque la pas de probleme, mais maintenant je dois envoyé une chaine qui commence par 4 chr(0) du coup LEN (chaine$) me renvois 0 et ma chaine est vide !?!

Moi qui suis un habituer de VB , le code suivant fonctionne en vb:

Code : Tout sélectionner

Chr(0) & Chr(0) & Chr(0) & Chr(0) & "coucou"
de meme que en PHP

Code : Tout sélectionner

$variable="\xFF\xFF\xFF\xFFCeci est un test"
Fonctionne parfaitement

En remplaçant les & par des + cela devrais fonctionner en purebasic, pourtant non c'est comme si ma chaine était vide ...

Code : Tout sélectionner

Chr(0) + Chr(0) + Chr(0) + Chr(0) + "coucou"

Voici le code que j'aimerais faire fonctionner:

Code : Tout sélectionner

SERVERQUERY_INFO$=Chr(0)+Chr(0)+Chr(0)+Chr(0)+"Ceci est un test"
PokeS(*Buffer,SERVERQUERY_INFO$,Len(SERVERQUERY_INFO$))
SendNetworkData(ConnectionID,*Buffer,Len(SERVERQUERY_INFO$))





Merci de me dire ce que je fais de pas correct :(
Dernière modification par yoman64 le ven. 19/oct./2007 20:04, modifié 1 fois.
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

petite question bete :D pourquoi commencer par 4 chr(0) ? je en te suis pas .


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
yoman64
Messages : 14
Inscription : jeu. 18/oct./2007 20:15

Message par yoman64 »

venom a écrit :petite question bete :D pourquoi commencer par 4 chr(0) ? je en te suis pas .


@++
Aucune idée , c'est pas moi qui choisis la syntaxe du protocole hein ;) fauderais demandé a Steam
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

Steam :? ?


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
yoman64
Messages : 14
Inscription : jeu. 18/oct./2007 20:15

Message par yoman64 »

venom a écrit :Steam :? ?


@++
Je veux créé un moniteur pour mon serveur Counter strike :)

J'ai trouvé la solution par contre mon serveur répond pas pfff

Alors le probleme c'était qu'une chaine string fini par chr(0) donc ça bloquais, je copie byte par byte les chr(0) en mémoire et ça passe :)

Code : Tout sélectionner

PokeB(*Buffer, 0)
    PokeB(*Buffer+1, 0)
    PokeB(*Buffer+2, 0)
    PokeB(*Buffer+3, 0)
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

a ok je penser que c'etait pour parler en reseau entre ordinateur j'ai jamais fait pour steam desol je ne connais pas là :? .


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
yoman64
Messages : 14
Inscription : jeu. 18/oct./2007 20:15

Message par yoman64 »

J'ai tout de meme trouvé la solution :P C'était entierement mon erreur désolé de t'avoir dérangé ça fonctionne parfaitmeent maintenant je m'étais trompé de charactere (je suis naze)


Alors encore merci

@+
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

mais de rien meme si je ne t'est pas trop avancer :lol: .


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
yoman64
Messages : 14
Inscription : jeu. 18/oct./2007 20:15

Message par yoman64 »

AU fait tu saurais pas comment faire un timer ? :-/

Je veux un timer pour un refresh a tout les 5 secondes mais je veux pas que cela empeche l'interception des evenements fenetres donc Sleep ou Delay on oubli

Pour le moment j'utilise

Code : Tout sélectionner

Repeat

    If WEvent = #PB_Event_CloseWindow
      MessageRequester("coucou","Au revoir" )
      Quit = 1
    EndIf


If Expected<ElapsedMilliseconds() 

; Alors on execute
Expected=ElapsedMilliseconds()+5000
EndIf





  Until Quit = 1 


Mais selon le gestionnaire de tache l'appli monopolise alors le CPU (ce qui est normal vu chaque test a chaque tour de boucle)
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Un code de NetMaestro

Code : Tout sélectionner

Procedure Pulse(uID, uMsg, dwUser, dw1, dw2)
  Debug "Hello! I was sent the user value of: "+Str(dwUser)
EndProcedure

timeSetEvent_(1000, 0, @Pulse(), 5, #TIME_PERIODIC)

Repeat
  Delay(1)
Until GetAsyncKeyState_(#VK_ESCAPE) & 32768
Par contre si tu as la version démo ce code ne pourra pas fonctionner car il fait appel à des fonctions de l'API windows.

Mais comme j'ai lu que tu voulais acheter PureBasic, ça ne sera bientôt plus un problème pour toi :)

Sinon fais une recherche sur le mot timer ici ou sur le forum anglais ,tu devrais trouver d'autres exemples.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

yoman64 a écrit :

Code : Tout sélectionner

PokeB(*Buffer, 0)
PokeB(*Buffer+1, 0)
PokeB(*Buffer+2, 0)
PokeB(*Buffer+3, 0)
pour info ca se résume à

Code : Tout sélectionner

PokeL(*Buffer, 0)
Dri
yoman64
Messages : 14
Inscription : jeu. 18/oct./2007 20:15

Message par yoman64 »

En fait cétait pas 0 mais 255 que je devais envoyé donc je crois que je dois faire byte par byte, a moin que je les déplace en tant que string chr(255)+chr(255)+chr(255)+chr(255)
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Code : Tout sélectionner

PokeL(*Buffer, -1)
Dri ;)
yoman64
Messages : 14
Inscription : jeu. 18/oct./2007 20:15

Message par yoman64 »

Dr. Dri a écrit :

Code : Tout sélectionner

PokeL(*Buffer, -1)
Dri ;)
ça fonctionne :) merci pour l'astuce ;)
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Dr. Dri a écrit :

Code : Tout sélectionner

PokeL(*Buffer, -1)
Dri ;)
Toujours là pour les bons conseils :wink:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Répondre