Une âme charritable pour corriger mon code ?
Publié : mar. 10/janv./2006 17:28
Salut, en fait je me suis lancé dans l'idée de codé une sorte de petit chat entre un client et un serveur.
Alors voila ce qu'il se passe:
Quand je lance le serveur et que je clique sur CREER le serveur se cree bien.
Apres quand je lance le client et que je me connecte au port du serveur sous l'ip local par exemple, il me dit que mon client est bien connecté mais le serveur ne reçoit pas le message " un client s'est connecté ".
Enfin voilà le code donc si il y avait moyen qu'on me le corrige svp ?
CLIENT
SERVEUR
Merci d'avance 
eRz
Alors voila ce qu'il se passe:
Quand je lance le serveur et que je clique sur CREER le serveur se cree bien.
Apres quand je lance le client et que je me connecte au port du serveur sous l'ip local par exemple, il me dit que mon client est bien connecté mais le serveur ne reçoit pas le message " un client s'est connecté ".
Enfin voilà le code donc si il y avait moyen qu'on me le corrige svp ?

CLIENT
Code : Tout sélectionner
; PureBasic Visual Designer v3.90 build 1360
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Frame_connexion
#Text_IP
#input_ip_local
#Text_port
#input_port
#B_connexion
#Frame_etat
#etat
#Frame_communication
#Text_msg_recu
#msg_recu
#Frame_traitement
#Text_msg
#input_msg
#B_envoyer
EndEnumeration
InitNetwork()
ip$="127.0.0.1"
port=6832
msg$=""
If OpenWindow(#Window_0, 216, 200, 260, 438, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Client")
If CreateGadgetList(WindowID())
Frame3DGadget(#Frame_connexion, 10, 10, 240, 70, " Connexion ")
TextGadget(#Text_IP, 20, 30, 20, 20, "IP :")
StringGadget(#input_ip_local, 20, 50, 80, 20, ip$)
TextGadget(#Text_port, 110, 30, 40, 20, "PORT :")
StringGadget(#input_port, 110, 50, 50, 20, Str(port))
ButtonGadget(#B_connexion, 170, 50, 70, 20, "Connexion !")
Frame3DGadget(#Frame_etat, 10, 90, 240, 50, " Etat de la connexion ")
StringGadget(#etat, 20, 110, 220, 20, "Non connecté", #PB_String_ReadOnly)
Frame3DGadget(#Frame_communication, 10, 150, 240, 120, " Communication ")
TextGadget(#Text_msg_recu, 20, 170, 140, 20, "Dernier message reçu :")
StringGadget(#msg_recu, 20, 190, 210, 60, "aucun message reçu", #PB_String_ReadOnly)
Frame3DGadget(#Frame_traitement, 10, 280, 240, 120, " Traitement ")
TextGadget(#Text_msg, 20, 300, 100, 20, "Ecrire un message :")
StringGadget(#input_msg, 20, 320, 210, 40, msg$)
ButtonGadget(#B_envoyer, 90, 370, 70, 20, "Envoyer")
EndIf
EndIf
Repeat
EventID.l= WaitWindowEvent () ; on récupère un évènement
Select EventID ; on sélectionne cet évènement
Case #PB_EventGadget ; cet évènement concerne une action sur un Gadget
Select EventGadgetID () ; dans ce cas, on récupère l'identifiant du gadget qui l'a créé
Case #b_connexion ; on compare l'identifiant à #ButtonGadget
connectionID=OpenNetworkConnection(ip$, port)
If ConnectionID
SetGadgetText(#etat, "Connecté !")
;SendNetworkString(ConnectionID, "Une personne s'est connecte sur votre serveur")
Else
etat_connexion$="Impossible de se connecter"
EndIf
Case #B_envoyer
SendNetworkString(ConnectionID, msg$)
;Case #B_1024 ; on compare l'identifiant à #ButtonGadget
;game_1024()
EndSelect
Case #PB_Event_CloseWindow ; cet évènement concerne la fermeture de la fenêtre
Quit=1
CloseNetworkConnection(ConnectionID)
EndSelect
Until Quit=1
SERVEUR
Code : Tout sélectionner
#Frame_connexion
#Status
#Text_status
#Text_traitement
#msg
#Frame_communication
#Text_last_msg
#last_msg
#Frame_traitement
#B_envoyer
#Text_creer_serveur
#port
#B_creer
EndEnumeration
InitNetwork()
port=6832
Buffer = AllocateMemory(1000)
If OpenWindow(#Window_0, 216, 200, 330, 368, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Serveur")
If CreateGadgetList(WindowID())
Frame3DGadget(#Frame_connexion, 10, 10, 310, 120, " Connexion ")
TextGadget(#Text_creer_serveur, 20, 30, 150, 20, "Créer un serveur sous le port :")
StringGadget(#port, 20, 50, 50, 20, Str(port))
ButtonGadget(#B_creer, 80, 50, 80, 20, "Creer")
StringGadget(#Status, 20, 100, 290, 20, "Aucun client de connecté en ce moment...", #PB_String_ReadOnly)
TextGadget(#Text_status, 20, 80, 40, 20, "Status :")
TextGadget(#Text_traitement, 20, 260, 120, 20, "Rédiger un message")
StringGadget(#msg, 20, 280, 290, 20, "")
Frame3DGadget(#Frame_communication, 10, 140, 310, 90, " Communication ")
TextGadget(#Text_last_msg, 20, 160, 110, 20, "Dernier message reçu :")
StringGadget(#last_msg, 20, 180, 290, 40, "aucun message reçu pour l'instant", #PB_String_ReadOnly)
Frame3DGadget(#Frame_traitement, 10, 240, 310, 100, " Traitement ")
ButtonGadget(#B_envoyer, 100, 310, 120, 20, "Envoyer")
EndIf
EndIf
Repeat
EventID.l= WaitWindowEvent () ; on récupère un évènement
Select EventID ; on sélectionne cet évènement
Case #PB_EventGadget ; cet évènement concerne une action sur un Gadget
Select EventGadgetID () ; dans ce cas, on récupère l'identifiant du gadget qui l'a créé
Case #b_creer ; on compare l'identifiant à #ButtonGadget
;connexion_serveur()
If CreateNetworkServer(Port)
SetGadgetText(#status,"Le serveur a ete cree. PORT:"+Str(port))
SEvent.l = NetworkServerEvent()
If SEvent
ClientID = NetworkClientID()
Select SEvent
Case 1
SetGadgetText(#status, "Connexion etablie avec un client")
Case 2
;PrintN("Client "+Str(ClientID)+" has send a packet !")
ReceiveNetworkData(ClientID, Buffer, 1000)
SetGadgetText(#last_msg,PeekS(Buffer))
Case 3
MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has send a file via the network !", 0)
ReceiveNetworkFile(ClientID, "C:\TEST_Network.ftp3")
quit=1
Case 4
SetGadgetText(#status,Str(ClientID)+" à fermé la connexion")
quit=1
CloseNetworkConnection(ConnectionID)
EndSelect
EndIf
Else
SetGadgetText(#status,"Impossible de créer le serveur")
EndIf
EndSelect
Case #PB_Event_CloseWindow ; cet évènement concerne la fermeture de la fenêtre
Quit=1
EndSelect
Until Quit=1
CloseNetworkServer()

eRz