Voilà je suis un petit nouveau dans la prog Autoit, et après quelque petit script je me suis dit que j'allais fait un tchat avec un serveur,
le problème c'est que mon serveur ressemble a ça :
► Afficher le texte
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <ColorConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
;Gui Principal
#Region ### START Koda GUI section ### Form=C:\Users\*******\******\Autoit script\Gui_serveur.kxf
Global $Serveur = GUICreate("Serveur", 577, 289, 317, 124)
Global $Console = GUICtrlCreateEdit("", 8, 8, 425, 233, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$WS_VSCROLL))
Global $Input = GUICtrlCreateInput("", 8, 256, 425, 21)
Global $Envoyer = GUICtrlCreateButton("Envoyer", 448, 256, 113, 25)
Global $Control = GUICtrlCreateGroup("Control", 448, 8, 113, 233)
Global $Utilisateur = GUICtrlCreateButton("Utilisateur", 456, 32, 97, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;Gui Liste Utilisateur connecté
#Region ### START Koda GUI section ### Form=C:\Users\*******\******\Autoit script\Gui_serveur_list_client.kxf
Global $gui2 = GUICreate("Liste Client", 322, 309, 378, 234)
Global $list = GUICtrlCreateGroup("Utilisateur", 8, 8, 305, 289)
GUICtrlCreateEdit("", 24, 32, 273, 249, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlCreateGroup("", -99, -99, 1, 1)
#EndRegion ### END Koda GUI section ###
Global $iListenSocket = ""
start()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
TCPCloseSocket($iListenSocket) ; Arrête l'écoute
msgConsole(2, "End Listening.")
Sleep(200)
msgConsole(0, "Fermeture du serveur (3sec)...")
Sleep(2800)
Exit
Case $Utilisateur
GUISetState(@SW_SHOW,$gui2)
EndSwitch
WEnd
Func start() ; Prépare le serveur à l'écoute
TCPStartup() ; Démarre le service TCP
msgConsole(0, "Lance le service TCP.")
Local $ipAdress = "127.0.0.1"
Local $iPort = "416"
msgConsole(0, "Ip : " & $ipAdress)
msgConsole(0, "Port : " & $iPort)
$iListenSocket = TCPListen($ipAdress, $iPort, 20) ; Lance l'écoute sur IP et le Port choisi
If @error Then ; Vérifie si il n'y a pas d'erreur et renvoie sa valeur le cas écheant
Local $iError = @error
msgConsole(1, "Could not listen, Error code: " & $iError)
Return False
Else
msgConsole(2, "Listen successful.")
EndIf
EndFunc
Func Msgconsole(Const $flag, Const $msg) ; Permet d'afficher des messages dans la console
Switch $flag
; Couleurs non-fonctionnelles...
Case 0 ; Message Info écrit en noir
GUICtrlSetData( $Console,"[" & @HOUR & ":" & @MIN & ":" & @SEC & "] (Info) " & $msg & @CRLF, 1)
Case 1 ; Message Erreur ecrit en rouge
GUICtrlSetData( $Console,"[" & @HOUR & ":" & @MIN & ":" & @SEC & "] (Erreur) " & $msg & @CRLF, 1)
Case 2 ; Message de Statut écrit en vert
GUICtrlSetData( $Console,"[" & @HOUR & ":" & @MIN & ":" & @SEC & "] (Statut) " & $msg & @CRLF, 1)
Case 3 ; Message client écrit en orange
GUICtrlSetData( $Console,"[" & @HOUR & ":" & @MIN & ":" & @SEC & "] " & $msg & @CRLF, 1)
EndSwitch
EndFunc
Func connexion()
msgConsole(0, "func connexion() START")
Local $iSocket = 0 ; Variable utilisé pour l'écoute des sockets client
Do ; Attend que quelqu'un se connect (Infini)
$iSocket = TCPAccept($iListenSocket) ; Accept une connexion si présente ( Socket à fermer quand fini; Un socket par client)
If @error Then ; Vérifie si il n'y a pas d'erreur et renvoie sa valeur le cas écheant
$iError = @error
msgConsole(1, "Could not accept the incoming connection, Error code: " & $iError)
Return False
EndIf
Until $iSocket <> -1 ; Si le socket est différent de -1 le Client est connecté
TCPCloseSocket($iListenSocket) ; Ferme l'écoute du socket pour permettre une nouvel connexion
msgConsole(1, "Client Connected.")
TCPCloseSocket($iSocket) ; Ferme le socket
EndFunc
#include <EditConstants.au3>
#include <ColorConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
;Gui Principal
#Region ### START Koda GUI section ### Form=C:\Users\*******\******\Autoit script\Gui_serveur.kxf
Global $Serveur = GUICreate("Serveur", 577, 289, 317, 124)
Global $Console = GUICtrlCreateEdit("", 8, 8, 425, 233, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$WS_VSCROLL))
Global $Input = GUICtrlCreateInput("", 8, 256, 425, 21)
Global $Envoyer = GUICtrlCreateButton("Envoyer", 448, 256, 113, 25)
Global $Control = GUICtrlCreateGroup("Control", 448, 8, 113, 233)
Global $Utilisateur = GUICtrlCreateButton("Utilisateur", 456, 32, 97, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;Gui Liste Utilisateur connecté
#Region ### START Koda GUI section ### Form=C:\Users\*******\******\Autoit script\Gui_serveur_list_client.kxf
Global $gui2 = GUICreate("Liste Client", 322, 309, 378, 234)
Global $list = GUICtrlCreateGroup("Utilisateur", 8, 8, 305, 289)
GUICtrlCreateEdit("", 24, 32, 273, 249, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlCreateGroup("", -99, -99, 1, 1)
#EndRegion ### END Koda GUI section ###
Global $iListenSocket = ""
start()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
TCPCloseSocket($iListenSocket) ; Arrête l'écoute
msgConsole(2, "End Listening.")
Sleep(200)
msgConsole(0, "Fermeture du serveur (3sec)...")
Sleep(2800)
Exit
Case $Utilisateur
GUISetState(@SW_SHOW,$gui2)
EndSwitch
WEnd
Func start() ; Prépare le serveur à l'écoute
TCPStartup() ; Démarre le service TCP
msgConsole(0, "Lance le service TCP.")
Local $ipAdress = "127.0.0.1"
Local $iPort = "416"
msgConsole(0, "Ip : " & $ipAdress)
msgConsole(0, "Port : " & $iPort)
$iListenSocket = TCPListen($ipAdress, $iPort, 20) ; Lance l'écoute sur IP et le Port choisi
If @error Then ; Vérifie si il n'y a pas d'erreur et renvoie sa valeur le cas écheant
Local $iError = @error
msgConsole(1, "Could not listen, Error code: " & $iError)
Return False
Else
msgConsole(2, "Listen successful.")
EndIf
EndFunc
Func Msgconsole(Const $flag, Const $msg) ; Permet d'afficher des messages dans la console
Switch $flag
; Couleurs non-fonctionnelles...
Case 0 ; Message Info écrit en noir
GUICtrlSetData( $Console,"[" & @HOUR & ":" & @MIN & ":" & @SEC & "] (Info) " & $msg & @CRLF, 1)
Case 1 ; Message Erreur ecrit en rouge
GUICtrlSetData( $Console,"[" & @HOUR & ":" & @MIN & ":" & @SEC & "] (Erreur) " & $msg & @CRLF, 1)
Case 2 ; Message de Statut écrit en vert
GUICtrlSetData( $Console,"[" & @HOUR & ":" & @MIN & ":" & @SEC & "] (Statut) " & $msg & @CRLF, 1)
Case 3 ; Message client écrit en orange
GUICtrlSetData( $Console,"[" & @HOUR & ":" & @MIN & ":" & @SEC & "] " & $msg & @CRLF, 1)
EndSwitch
EndFunc
Func connexion()
msgConsole(0, "func connexion() START")
Local $iSocket = 0 ; Variable utilisé pour l'écoute des sockets client
Do ; Attend que quelqu'un se connect (Infini)
$iSocket = TCPAccept($iListenSocket) ; Accept une connexion si présente ( Socket à fermer quand fini; Un socket par client)
If @error Then ; Vérifie si il n'y a pas d'erreur et renvoie sa valeur le cas écheant
$iError = @error
msgConsole(1, "Could not accept the incoming connection, Error code: " & $iError)
Return False
EndIf
Until $iSocket <> -1 ; Si le socket est différent de -1 le Client est connecté
TCPCloseSocket($iListenSocket) ; Ferme l'écoute du socket pour permettre une nouvel connexion
msgConsole(1, "Client Connected.")
TCPCloseSocket($iSocket) ; Ferme le socket
EndFunc
Et j'aimerais qu'il affiche tout ce qu'il fait et que je puisse envoyer des commandes par cette interface (d'où l'input et le bouton envoyer)
Or je dois aussi vérifier si un client se connecte avec ma fonction connexion() Mais le problème c'est qu'elle rend le GUI inutilisable et je
vois pas comment la faire tourner en même temps que j'utilise mon GUI.
Donc je me retourne vers vous, car je bloque...
Ps: si vous avez une idée aussi pour les messages en couleur je suis preneur (c'est plus pratique a lire, et en plus c'est joli ^^)
Merci d'avance pour votre aide et vos réponse.



