SendNetworkData()

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Lea40
Messages : 22
Inscription : ven. 15/avr./2005 15:55
Localisation : Aquitaine

Message par Lea40 »

Je crois avoir compris,
as tu un exemple stp ?


Merci
Lea
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Un exemple ?
je vais te faire ca aujourd'hui si j'ai le temps ^^

Dri
Lea40
Messages : 22
Inscription : ven. 15/avr./2005 15:55
Localisation : Aquitaine

Message par Lea40 »

Par avance merci,
mais prend ton temps, je me suis mis sur autre chose
Lea
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Trop tard... 8)
En espérant que ca corresponde à ce que tu cherches à faire...

Code : Tout sélectionner

Enumeration
  #FinMessageNormal
  #FinMessageErreur
  #FinMessageTruc
EndEnumeration

#TailleMaxMessage = $2000

Dim TypeMessage.s(#FinMessageTruc)

TypeMessage(#FinMessageNormal) = "Message"
TypeMessage(#FinMessageErreur) = "Erreur"
TypeMessage(#FinMessageTruc)   = "Machin"

Procedure CreerMessage(Message.s, Type.l)
  TailleMessage.l = Len(Message) + 8
  ptr = AllocateMemory(TailleMessage)
  
  PokeL(ptr, Len(Message))
  PokeS(ptr + 4, Message, Len(Message))
  PokeL(ptr + TailleMessage - 4, Type)
  
  ProcedureReturn ptr
EndProcedure

Procedure TailleMessage(Message.l)
  ProcedureReturn PeekL(Message) + 8
EndProcedure

Procedure LireMessage(Message.l)
  
  Taille.l  = PeekL(Message)
  Type.l    = PeekL(Message + 4 + Taille)
  Titre.s   = TypeMessage(Type)
  Contenu.s = PeekS(Message + 4, Taille)
  
  MessageRequester(Titre, Contenu)
  FreeMemory(Message)
EndProcedure

Procedure EnvoyerMessage(Client.l, Message.l)
  SendNetworkData(Client, Message, TailleMessage(Message))
EndProcedure

Procedure RecevoirMessage(Client.l)
  ptr = AllocateMemory(#TailleMaxMessage)
  ReceiveNetworkData(Client, ptr, #TailleMaxMessage)
  
  ProcedureReturn ptr
EndProcedure

;- Debut du programme

msg = CreerMessage("Bonjour, ceci est un message", #FinMessageNormal)
LireMessage(msg)

msg = CreerMessage("Le fichier n'existe pas sur le serveur", #FinMessageErreur)
LireMessage(msg)

msg = CreerMessage("Euuuuuuh", #FinMessageTruc)
LireMessage(msg)
Dri ;)
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

Un example plus simple qui montre bien le truc :

Code : Tout sélectionner

test.s = "bouh" + Chr(0) + "hahaha"
Debug test
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

cederavic a écrit :Un example plus simple qui montre bien le truc :

Code : Tout sélectionner

test.s = "bouh" + Chr(0) + "hahaha"
Debug test
Effectivement ton exemple montre bien le "problème" des null string...
Le mien montre (j'espère) comment Lea40 peut s'y prendre...

Dri
Lea40
Messages : 22
Inscription : ven. 15/avr./2005 15:55
Localisation : Aquitaine

Message par Lea40 »

J'ai bien compris, merci a tout les deux
Lea
Répondre