Tchat
Publié : lun. 27/août/2012 7:18
Salut a tous, voici une esquisse de Tchat. J'aurais besoin de vous pour le tester. On va dire vers midi aujourd'hui ?
Pour avoir votre ip, allez ici : http://xmas.free.fr/ip
Pour avoir votre ip, allez ici : http://xmas.free.fr/ip
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)
PrintN("HyperCryptTchat")
PrintN("(c)2012 - SPH")
PrintN("")
;+++++++++++++++++++++++++++++++++++++++++++++++++++
;+++++++++++++++++++++++++++++++++++++++++++++++++++
Procedure NetworkThread(Parameter)
Port = 1
Beep_(1500,50)
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)
reponse$=(PeekS(*Buffer))
Repeat
a$=Left(reponse$,80)
ConsoleColor(12,0)
PrintN(a$)
reponse$=Mid(reponse$,81,Len(reponse$)-80)
Until reponse$=""
*Buffer = AllocateMemory(len)
Case 4
;PrintN("...Disconnected")
EndSelect
EndIf
ForEver
;Until Quit = 1
CloseNetworkServer(0)
Else
MessageRequester("Error", "Can't create the server (port in use ?).", 0)
EndIf
End
EndProcedure
;+++++++++++++++++++++++++++++++++++++++++++++++++++
;+++++++++++++++++++++++++++++++++++++++++++++++++++
CreateThread(@NetworkThread(), 154)
If OpenWindow(#Window, 0, 0, 328, 184, "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_connect,1)
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)
DisableGadget(#bouton_connect,0)
Repeat
Event = WaitWindowEvent()
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"
;******************************************************************************
If GetGadgetText(#ipgadget)<>""
Port = 6832
ConnectionID = OpenNetworkConnection(GetGadgetText(#ipgadget), Port)
If ConnectionID
connect=1
DisableGadget(#bouton_connect,1)
DisableGadget(#bouton_deconnecte,0)
Else
connect=0
DisableGadget(#bouton_connect,0)
DisableGadget(#bouton_deconnecte,1)
EndIf
EndIf
;******************************************************************************
Case #bouton_deconnecte
;debug "click sur deconnect"
If connect=1
CloseNetworkConnection(ConnectionID)
EndIf
connect=0
DisableGadget(#bouton_connect,0)
DisableGadget(#bouton_deconnecte,1)
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"
Fichier$ = OpenFileRequester("Choisissez une clé de cryptage", "", "",0)
SetGadgetText(#text_inconnu2,Fichier$)
Case #text_inconnu2
;debug "on a clique ou modifie le text inconnu2"
Case #bouton_appliquer
;debug "click sur Appliquer"
If GetGadgetText(#text_inconnu)<>"" And GetGadgetText(#text_inconnu2)<>""
;Debug GetGadgetText(#text_inconnu)
If connect=0
DisableGadget(#bouton_connect,0)
DisableGadget(#bouton_deconnecte,1)
Else
DisableGadget(#bouton_connect,1)
DisableGadget(#bouton_deconnecte,0)
EndIf
EndIf
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"
Message$=GetGadgetText(#text_inconnu3)
If Message$<>""
If connect=1
SendNetworkString(ConnectionID, Message$)
EndIf
Repeat
a$=Left(Message$,80)
ConsoleColor(10,0)
PrintN(a$)
Message$=Mid(Message$,81,Len(Message$)-80)
Until Message$=""
EndIf
SetGadgetText(#text_inconnu3,"")
SetActiveGadget(#text_inconnu3)
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf