Page 1 sur 1

"Melange" de 2 codes

Publié : mer. 05/sept./2012 11:33
par SPH
Voila, je n'ai pas encore compris comment integrer un serveur a mon code sans passer par un thread. Voila pourquoi : tres vite, le serveur s'arrete sur une instruction et empeche la lecture de mon code.
Voila la partie tres classique du serveur :

Code : Tout sélectionner

  Port = 1
len=5000
*Buffer = AllocateMemory(len)

If CreateNetworkServer(0, Port)
  Repeat
    SEvent = NetworkServerEvent()
    If SEvent
      ClientID = EventClient()
      Select SEvent
        Case 1
          ;PrintN("Connected...")
        Case 2
          ReceiveNetworkData(ClientID, *Buffer, len)
          message$=(PeekS(*Buffer))
ce serveur donc, a melanger a ce code que m'a genereusement fait Dobro :

Code : Tout sélectionner

Enumeration ;fenêtre
   #Window
   #ipgadget
   #bouton_connect
   #bouton_deconnecte
   #text_mot_de_pass
   #bouton_clef
   #bouton_appliquer
   #text_inconnu
   #text_inconnu2
   #text_inconnu3
   ;
   #menu_1 ; j'ai mis 1 car je ne sais pas a quoi tu veux le faire reagir
EndEnumeration

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

OpenConsole()
EnableGraphicalConsole(1)
ConsoleColor(10,0)
PrintN("allo")


If OpenWindow(#Window, 0, 0, 322, 182, "HyperCryptTchat", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
   ;     EditorGadget(#EditorGadget_0, 8, 8, 306, 133)
   ;     For a = 0 To 5
   ;       AddGadgetItem(#EditorGadget_0, a, "Ligne "+Str(a))
   ;     Next
   
   
   
   ;AddKeyboardShortcut(#Fenetre, Raccourci, Event)
   
   IPAddressGadget(#ipgadget, 20, 20, 120,20)
   ButtonGadget(#bouton_connect , 155, 20,  72, 20, "Connect")
   ButtonGadget(#bouton_deconnecte, 235, 20,  72, 20, "Disconnect")
   DisableGadget(#bouton_deconnecte,1)
   
   TextGadget  (#text_mot_de_pass, 20,56, 250, 24, "Mot de passe :")
   StringGadget(#text_inconnu,100,56,210,20,"",#PB_String_BorderLess)
   
   ButtonGadget(#bouton_clef, 20, 88,  72, 20, "Clé")
   StringGadget(#text_inconnu2,100,88,210,20,"",#PB_String_BorderLess)
   
   ButtonGadget(#bouton_appliquer, 100, 120, 130, 20, "Appliquer")
   StringGadget(#text_inconnu3,20,152,290,20,"",#PB_String_BorderLess)
   SetActiveGadget(#text_inconnu3)  ; a quoi ça sert ça ??
   
   AddKeyboardShortcut(#Window, #PB_Shortcut_Return, #menu_1)
   
   Repeat
      Event = WaitWindowEvent() ;Or NetworkServerEvent()
      
      Select Event
         Case #PB_Event_Gadget ; ici on regarde ce qui concerne les Gadgets et seulement eux
         Select EventGadget() ; on va creer un case par gadget  !! (tout les gadgets auront un case , meme si tu ne t'en sert pas !
            Case #ipgadget
            Debug "clique sur ip gadget"
            Case #bouton_connect
            Debug "click sur connect"
            Case #bouton_deconnecte
            Debug "click sur deconnect"
            Case #text_mot_de_pass
            Debug "modification de mot de pass"
            Case #text_inconnu
            Debug "on a clique ou modifie le text inconnu"
            Case #bouton_clef
            Debug "on a clicke sur le bouton clef"
            Case #text_inconnu2
            Debug "on a clique ou modifie  le text inconnu2"
            Case #bouton_appliquer
            Debug "click sur Appliquer"
            Case #text_inconnu3
            Debug "on a clique sur le text inconnu3"
            
         EndSelect
         
         
         
         Case #PB_Event_Menu ; ici on regarde les events du menu
         Select EventMenu()
            Case #menu_1
            Debug "on a appuyé sur le touche RETURN"
         EndSelect
         
      EndSelect
   Until Event = #PB_Event_CloseWindow
   
EndIf
;RemoveKeyboardShortcut(#fenetre_0, #PB_Shortcut_All )
Vous remarquerez que j'ai tenté ca :

Code : Tout sélectionner

Event = WaitWindowEvent() Or NetworkServerEvent()
Mais ca ne marche pas...

Re: "Melange" de 2 codes

Publié : mer. 05/sept./2012 14:59
par Mesa
Peut-être comme ça. Chez moi ça ne bloque rien (pour l'instant).

Code : Tout sélectionner

Enumeration ;fenêtre
  #Window
  #ipgadget
  #bouton_connect
  #bouton_deconnecte
  #text_mot_de_pass
  #bouton_clef
  #bouton_appliquer
  #text_inconnu
  #text_inconnu2
  #text_inconnu3
  ;
  #menu_1 ; j'ai mis 1 car je ne sais pas a quoi tu veux le faire reagir
EndEnumeration

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

OpenConsole()
EnableGraphicalConsole(1)
ConsoleColor(10,0)
PrintN("allo")

Port = 1
len=5000
*Buffer = AllocateMemory(len)

If CreateNetworkServer(0, Port)
  Debug "Serveur OK"
Else
  Debug "Pas de serveur = Fin"
  End
EndIf




If OpenWindow(#Window, 0, 0, 322, 182, "HyperCryptTchat", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ;     EditorGadget(#EditorGadget_0, 8, 8, 306, 133)
  ;     For a = 0 To 5
  ;       AddGadgetItem(#EditorGadget_0, a, "Ligne "+Str(a))
  ;     Next
  
  
  
  ;AddKeyboardShortcut(#Fenetre, Raccourci, Event)
  
  IPAddressGadget(#ipgadget, 20, 20, 120,20)
  ButtonGadget(#bouton_connect , 155, 20,  72, 20, "Connect")
  ButtonGadget(#bouton_deconnecte, 235, 20,  72, 20, "Disconnect")
  DisableGadget(#bouton_deconnecte,1)
  
  TextGadget  (#text_mot_de_pass, 20,56, 250, 24, "Mot de passe :")
  StringGadget(#text_inconnu,100,56,210,20,"",#PB_String_BorderLess)
  
  ButtonGadget(#bouton_clef, 20, 88,  72, 20, "Clé")
  StringGadget(#text_inconnu2,100,88,210,20,"",#PB_String_BorderLess)
  
  ButtonGadget(#bouton_appliquer, 100, 120, 130, 20, "Appliquer")
  StringGadget(#text_inconnu3,20,152,290,20,"",#PB_String_BorderLess)
  SetActiveGadget(#text_inconnu3)  ; a quoi ça sert ça ??
  
  AddKeyboardShortcut(#Window, #PB_Shortcut_Return, #menu_1)
  
  Repeat
    Event = WaitWindowEvent() ;Or NetworkServerEvent()
    SEvent = NetworkServerEvent()
    If SEvent
      ClientID = EventClient()
      Select SEvent
        Case 1
          PrintN("Connected...")
        Case 2
          ReceiveNetworkData(ClientID, *Buffer, len)
          message$=(PeekS(*Buffer))
      EndSelect
    EndIf
    
    Select Event
      Case #PB_Event_Gadget ; ici on regarde ce qui concerne les Gadgets et seulement eux
        Select EventGadget() ; on va creer un case par gadget  !! (tout les gadgets auront un case , meme si tu ne t'en sert pas !
          Case #ipgadget
            Debug "clique sur ip gadget"
          Case #bouton_connect
            Debug "click sur connect"
          Case #bouton_deconnecte
            Debug "click sur deconnect"
          Case #text_mot_de_pass
            Debug "modification de mot de pass"
          Case #text_inconnu
            Debug "on a clique ou modifie le text inconnu"
          Case #bouton_clef
            Debug "on a clicke sur le bouton clef"
          Case #text_inconnu2
            Debug "on a clique ou modifie  le text inconnu2"
          Case #bouton_appliquer
            Debug "click sur Appliquer"
          Case #text_inconnu3
            Debug "on a clique sur le text inconnu3"
            
        EndSelect
        
        
        
      Case #PB_Event_Menu ; ici on regarde les events du menu
        Select EventMenu()
          Case #menu_1
            Debug "on a appuyé sur le touche RETURN"
        EndSelect
        
    EndSelect
  Until Event = #PB_Event_CloseWindow
  
EndIf
;RemoveKeyboardShortcut(#fenetre_0, #PB_Shortcut_All )
Mesa.