[R] Création d'un Chat Simpliste

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
mica2727
Niveau 4
Niveau 4
Messages : 82
Enregistré le : jeu. 03 oct. 2013 17:32
Status : Hors ligne

[R] Création d'un Chat Simpliste

#1

Message par mica2727 »

Bonjour.

Je voudrais créer un tchat simpliste, c'est à dire juste une grande zone pour écrire et l'ont vois ce que les autres écrivent, un tchat quoi...

Donc j'ai commencé la programmation j'ai pas mal avancé sauf quand j'arrive à la question " mais comment je récupére les données des gens ? ".

Je vais donc voir du côté TCP, sauf qu'il faut déjà avoir créer un serveur... Donc a moins que mon pc reste H24 pour que tous le monde puisse accédez au serveur je ne vois pas comment faire.

J'avais aussi la solution de mon hébergeur web avec un fichier XML, sauf que j'ai réfléchis si chaque personne le charge et le modifie il risque d'avoir un problème sur le nombre d'ouverture de connexion. Et un problème de sécurité par la même occassion.

Donc l'idée se serais comment je peux faire pour envoyer ou récupérer des données ?

Fesons plus simple :
J'envoie une phrase ( et le logiciel repére qu'une nouvelle phrase à été écrite il l'enregistre dans un fichier texte, et l'affiche ).
Et les autres la recoivent et ça s'affiche aussi

Mais comment envoyer une phrase ? et comment récupérer une phrase ? et comment créer un serveur TCP du coup... Ou si y'a un autre moyen je suis prenneur.
Modifié en dernier par mica2727 le sam. 19 oct. 2013 18:38, modifié 1 fois.
Sea
Niveau 6
Niveau 6
Messages : 219
Enregistré le : ven. 22 juin 2012 18:51
Localisation : France
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#2

Message par Sea »

Si il y'a plusieurs personne tu es obligé de passé par un serveur et c'est ce que font presque tout les chat (même skype s'y met bientôt...)

Ou sinon ce que tu peux faire c'est passé par une sorte de p2p(skype actuellement) où chaque client est en meme temps serveur c'est à dire que lorsqu'un utilisateur ce connecte il va ce connecter au autre personne du réseau en envoyant par exemple la date du dernier message reçu. Les autres vont voir si l'utilisateur à un message si non alors il lui envoie. Mais bon la 1ere méthodes est quand meme plus mieux quoi !! xD
Chokolaa
Niveau 4
Niveau 4
Messages : 55
Enregistré le : ven. 04 nov. 2011 13:12
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#3

Message par Chokolaa »

mica2727
Niveau 4
Niveau 4
Messages : 82
Enregistré le : jeu. 03 oct. 2013 17:32
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#4

Message par mica2727 »

Je suis novice dans le TCP donc me donné un script tout fait va me servir à < copier > mais pas apprendre comment faire ( enfin je me comprend... )

Et si je crée un serveur mais dedans je met juste le fichier XML pour les données ( ça ne feras pas ramer ma connexion puis-ce que c'est minime ) et c'est un tchat privé autour de ma guilde si vous préférais donc au maximum ça dépasseras pas les 70 membres... ( la j'ai dis vraiment fort, mais en général ce serais plutôt 5/6 membres de connecté ).

TCP = Il crée un port et un serveur en même temps ? genre si je met mon adresse IP " internet " il se passe quoi ?
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#5

Message par PandiPanda »

Bonjour,
Si vous communiquez à tout les membres où se connecté cela ne pose pas trop un probleme.

Si vous n'avez pas d'ip fixe, ou pas l'envie de la fournir, JE(avis personnel ^^) vous conseillerai de passer par l'IRC.
Les serveurs mit en place sont gratuit pour la plupart et assez simple à mettre en oeuvre ^^
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
mica2727
Niveau 4
Niveau 4
Messages : 82
Enregistré le : jeu. 03 oct. 2013 17:32
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#6

Message par mica2727 »

Merci, et je peux en trouvé ou des serveurs IRC ? ( vous utilisais lequel vous ? )

EDIT : J'y avais pensé au serveur IRC mais pour moi ils sont payant, j'en avais pas trouver de gratuit.
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#7

Message par PandiPanda »

Perso,
j'utilise "irc.freenode.org" ou "Vidar.IRC.Worldnet.Net"
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
mica2727
Niveau 4
Niveau 4
Messages : 82
Enregistré le : jeu. 03 oct. 2013 17:32
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#8

Message par mica2727 »

Et je dois mettre quoi comme port ?
( après je suppose que j'ai juste a envoyer les informations pour créer un channel et tout cela ( je pense que je dois pas être loin de la réalité ) )

Et l'avantage avec TCP sur AutoIt y'a pas 50 fonctions de toute manière sa ne peut que être TCPSend() :lol:
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#9

Message par PandiPanda »

Code : Tout sélectionner

Global $serveur = "irc.freenode.org"
Global $port = 6667
et oui, il y'a l'utilisation des fonctions TCP ci dessous :
- TCPStartup()
- TCPConnect()
- TCPNameToIP()
- TCPSend()
- TCPReicv()

Avoir une petite idée de la structure du protocole d'IRC est pas mal non plus ^^
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
mica2727
Niveau 4
Niveau 4
Messages : 82
Enregistré le : jeu. 03 oct. 2013 17:32
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#10

Message par mica2727 »

Voila mon code :

Code : Tout sélectionner

TCPStartup()
$ip = TCPNameToIP("irc.freenode.net")
$connected = TCPConnect($ip,6667)
If $connected > 0 Then
    MsgBox(64, "", "Debug: $Connected = OK")
Else
    MsgBox(64, "", "Debug: $Connected = "&@error)
EndIf
;~ GUICtrlSetData($chat,GUICtrlRead($chat)&@LF&$connected)

$send = TCPSend($connected,"/SERVER TCFDrago 1 Serveur Réserver à la guilde TCF")
GUICtrlSetData($chat,GUICtrlRead($chat)&@LF&$connected)
If $send > 0 Then
    MsgBox(64, "", "Debug: $Send = OK")
Else
    MsgBox(64, "", "Debug: $Send = "&@error)
EndIf

$connnectedRead = TCPListen($ip,6667)
If $connectedRead > 0 Then
    MsgBox(64, "", "Debug: $ConnectedRead = OK")
Else
    MsgBox(64, "", "Debug: $ConnectedRead = "&@error)
EndIf
$ConnectedSocket = TCPAccept($connectedRead)
If $ConnectedSocket <> -1 Then
    MsgBox(64, "", "Debug: $ConnectedSocket = OK")
Else
    MsgBox(64, "", "Debug: $ConnectedSocket = "&@error)
EndIf
While 1
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    $recv = TCPRecv($ConnectedSocket, 2048,1)
    If @error Then GUICtrlSetData($chat,GUICtrlRead($chat)&@error)
    $recv = BinaryToString($recv, 4)
    If $recv <> "" Then GUICtrlSetData($chat, _
        $newUser & " > " & $recv & @CRLF & GUICtrlRead($chat))
;~  GUICtrlSetData($chat,GUICtrlRead($chat)&@LF&$recv)
    Sleep(1000)
WEnd

If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)
TCPShutdown()
EDIT : 20h02
J'ai donc décidé de tous filtrer les erreurs.
$connected renvoie " OK "
$send renvoie " OK "
$connectedRead renvoie " 10049 " ( WSAEADDRNOTAVAIL )
$connectedSocket renvoie " 10038 " ( WSAENOTSOCK )

Si je comprends bien il arrive pas a se connecter pour lire sur le serveur.
Donc je dois mettre quoi je suis perdu :cry:
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#11

Message par PandiPanda »

Pour pouvoir interagir avec ce serveur IRC il faut parler "la meme langue" en gros suivre le protocole qu'IRC met en place !

par exemple pour pouvoir vous connecté sur le serveur, il faut suivre certaine étapes.
1) envoyé NICK + pseudo
2) envoyé USER + pseudo + unePhrase

meme principe pour le message ou autre, il faut suivre un protocole !

voici un code basique qui peut vous donner des pistes.
► Afficher le texte
Ici un lien expliquant le protocole IRC
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
mica2727
Niveau 4
Niveau 4
Messages : 82
Enregistré le : jeu. 03 oct. 2013 17:32
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#12

Message par mica2727 »

Bon donc je recommence je fais comme vous dites, mais toujours rien et le programme se ferme tout seul.
Est-ce que ça change quelque chose si le programme est en mode évènementiel ?

Parce que j'ai codé comme cela ( avec vos informations ) mais rien ne se passe.

Code : Tout sélectionner

TCPStartup()
$connected = TCPConnect(TCPNameToIP("irc.freenode.net"),$port)
If $connected < 0 Then
    MsgBox(64, "", "Debug: $connected = OK")
Else
    MsgBox(64, "", "Debug: $connected = "&@error)
EndIf


$test1 = TCPSend($connected,"NICK Naruxc27"&@CRLF)
If $test1 < 0 Then
    MsgBox(64, "", "Debug: $test1 = OK")
Else
    MsgBox(64, "", "Debug: $test1 = "&@error)
EndIf
$test2 = TCPSend($connected,"USER Naruxc27 a envoye"&@CRLF)
If $test2 < 0 Then
    MsgBox(64, "", "Debug: $test2 = OK")
Else
    MsgBox(64, "", "Debug: $test2 = "&@error)
EndIf

While 1
    $msg = GUIGetMsg()
    Switch $msg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $sendMsg
            TCPSend($connected, "PRIVMSG " & $channel & " :" & GUICTrlRead($inputMsg) & @CRLF)
            MsgBox(64,"test", "<" & $pseudo & "> " & GUICTRLRead($inputMsg))
            GUiCtrlsEtData($inputMsg, "")
    EndSwitch
    $row = TCPRecv($connected, 4000)
    If @error Then Exit
    If Not $row Then ContinueLoop
    $datasplit = StringSplit($row, @CRLF, 1)
    For $i = 1 To $datasplit[0]
        $datasplit2 = StringSplit($datasplit[$i], " ")
        If $datasplit2[1] = "PING" Then TCPSend($connected, "PONG " & $datasplit2[2] & @CRLF)
        If $datasplit2[0] < 3 Then ContinueLoop
        Switch $datasplit2[2] ;on fait un switch pour faire des différences si le deuxieme mot est :
            Case "PRIVMSG" ; privmsg (donc on recoit du texte)
                $qui = StringMid($datasplit2[1], 2, StringInStr($datasplit2[1], "!") - 2) ;recuperer le pseudo de celui qui a écrit
                $quoi = StringMid($datasplit[$i], StringInStr($datasplit[$i], ":", 0, 2) + 1)
                $ou = $datasplit2[3] ;et sur quel canal
                _GUICtrlListBox_AddString($List1, "<" & $qui & "> " & $quoi)

            Case "001" ; 001 (c'est à dire qu'on a fini de se connecter, on établie la connexion au channel
                TCPSend($connected, "JOIN " & $channel & @CRLF) ;JOIN #channel
                _GUICtrlListBox_AddString($List1, "Vous êtes connecté.")

            Case "353"
                For $j = 6 To $datasplit2[0]
                _GUICTrlListBox_AddString($List2, $datasplit2[$j])
                Next


        EndSwitch
   Next
WEnd
ça renvoie : 0 puis 0 et 0 !
Chokolaa
Niveau 4
Niveau 4
Messages : 55
Enregistré le : ven. 04 nov. 2011 13:12
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#13

Message par Chokolaa »

mica2727 a écrit :Je suis novice dans le TCP donc me donné un script tout fait va me servir à < copier > mais pas apprendre comment faire ( enfin je me comprend... )
Moi quand je suis novice dans un domaine je prend des script tout fait, je les étudie à l'aide de notre bien aimée touche F1 ^^ tout ça sans recopier le script, il faut juste de la bonne volonté. Un script déjà fait et fonctionnel je trouve que ça vaut 1000 explication si tu à un esprit assez logique. Après chacun fait comme il veut. :P
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#14

Message par PandiPanda »

Bonjour,
deja si vous faites une mauvaise condition, vous aurez de mauvaise informations ^^

TCPSend(), TCPConnect() retourne 0 ET met a jour le @error.

Donc dans vos conditions vous devez avoir quelque chose comme ceci;
► Afficher le texte
Ce qui prouve que vous vous connectez bien au serveur en question.

Pour le reste faudrai avoir le script complet et voir ce que vous avez mit comme composant de la "gui" et autres ...
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
mica2727
Niveau 4
Niveau 4
Messages : 82
Enregistré le : jeu. 03 oct. 2013 17:32
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#15

Message par mica2727 »

Voila j'ai modifié et j'ai enfin les réponses...

Looking up your hostname...
Checking Ident
Found your hostname
No Ident response
Naruxc27 USER :Not enough parameters

Je suppose que ça veut dire pas assez de paramètre ^^
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#16

Message par PandiPanda »

► Afficher le texte
donc quelque chose de ce style la;

Code : Tout sélectionner

TCPSend($masock, "NICK " & $pseudo & @CRLF)
TCPSend($masock, "USER " & $pseudo & " <domaine> <nom de serveur> <nom réel>" & @CRLF)
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
mica2727
Niveau 4
Niveau 4
Messages : 82
Enregistré le : jeu. 03 oct. 2013 17:32
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#17

Message par mica2727 »

EDIT : 18h39

C'est bon j'ai tout effacé ici, j'ai compris comment ça marche.

EDIT : 19h04

Euh... Comment on réserve sont propre channel c'est bien cela :

Avant faut se connecter donc :

Code : Tout sélectionner

TCPSend($connected,"NICK MonPseudo" &@CRLF)
TCPSend($connected,"MSG NICKSERV REGISTER MotDePasse AdresseMail" &@CRLF)
Puis après :

Code : Tout sélectionner

TCPSend($connected,"MSG CHANSERV REGISTER #MonSalon MotDePasseDuSalon DescriptionDuSalon" &@CRLF)
Mais sa me retourne rien...

Code : Tout sélectionner

#Region
;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\..\Utilitaires\AutoIt3\Icons\au3.ico
#AutoIt3Wrapper_Res_Description=Un logiciel pour parler entre membre TCF organisé ainsi des réunions et savoir qui est en ligne.
#AutoIt3Wrapper_Res_Fileversion=0.0.0.0
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=TCF
#AutoIt3Wrapper_Res_Language=1036
#EndRegion
;**** Directives created by AutoIt3Wrapper_GUI ****
; ----------------------------------------------------------------
; ---------------------- INFORMATION -----------------------------
; ----------------------------------------------------------------
; Version AutoIt :  3.3.8.1
; Langue :          Français
; Plateforme :      Win7
; Auteur :          Mica2727 (Mica2727 at orange dot fr)
;
; Fonction du script :
; Un logiciel pour parler entre membre TCF organisé ainsi des réunions et savoir qui est en ligne.
;
#comments-start
 Version 0.0b   : 17/10/2013
    - Création de la page de configuration sur un fichier de config.ini
    - Mise à jour sur le pseudo qui s'affiche dans le chat.
    - Recherche comment ouvrir un port ou une passerelle.

 Version 0.0a   : 14/10/2013
    - Création de l'interface.

#comments-end
; ----------------------------------------------------------------
; --------------------- INFORMATION EXE --------------------------
; ----------------------------------------------------------------
;
;
;
; ----------------------------------------------------------------
; ------------------------ VARIABLES -----------------------------
; ----------------------------------------------------------------
; Include
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <ListboxConstants.au3>

#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Opt("GUIOnEventMode", 1)

Dim $ver = "[ V0.0a ] "
Dim $connect = "0", $cfg = ".\config\cfg.ini", $connectedRead, $connected, $send, $newUser, $msg
Dim $channel = "#TCFDrago", $datasplit, $datasplit2, $element
Global $port = 6667

Local $hDLL = DllOpen("user32.dll")
; ----------------------------------------------------------------
; -------------------- Création de la GUI ------------------------
; ----------------------------------------------------------------

; Création GUI 1
#Region ### START Koda GUI section ### Form=d:\internet\scite\tcf messenger\tcfmessenger.kxf
$TCFMessenger = GUICreate("TCFMessenger", 701, 521, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE,"Echap")
$MenuItem1 = GUICtrlCreateMenu("&Options")
$MenuItem3 = GUICtrlCreateMenuItem("Mes informations", $MenuItem1)
$MenuItem2 = GUICtrlCreateMenu("&A propos")
$Group1 = GUICtrlCreateGroup("Chat", 8, 72, 537, 385)
$chat = GUICtrlCreateList("", 16, 88, 521, 361,BitOR($LBS_NOTIFY,$LBS_SORT,$LBS_DISABLENOSCROLL,$LBS_NOSEL,$WS_VSCROLL))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$btn_connect = GUICtrlCreateButton("Connecté", 8, 8, 75, 25)
$btn_disconnect = GUICtrlCreateButton("Déconnecté", 88, 8, 75, 25)
$btn_away = GUICtrlCreateButton("Absent", 248, 8, 75, 25)
$btn_occupe = GUICtrlCreateButton("Occupé", 168, 8, 75, 25)
$Label1 = GUICtrlCreateLabel("Autre Status?", 8, 48, 103, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$status = GUICtrlCreateInput("status", 112, 48, 121, 21)
$sendMsg = GUICtrlCreateButton("OK", 656, 464, 35, 25)
$inputMsg = GUICtrlCreateInput("inputMsg", 8, 464, 641, 24)
GUICtrlSetOnEvent($inputMsg,"saveMsg")
GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
$Group2 = GUICtrlCreateGroup("Membre", 552, 72, 145, 385)
$mbr = GUICtrlCreateList("", 560, 88, 133, 361,BitOR($LBS_NOTIFY,$LBS_SORT,$LBS_DISABLENOSCROLL,$LBS_NOSEL,$WS_VSCROLL))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$btn_game = GUICtrlCreateButton("En train de jouer", 328, 8, 91, 25)
$btn_status = GUICtrlCreateButton("Ok!", 240, 48, 35, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

#Region ### START Koda GUI section ### Form=
$MyInfo = GUICreate("MyInfo", 269, 131, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE,"Echap")
$text_myinfo = GUICtrlCreateLabel("Mes informations :", 8, 8, 159, 27)
GUICtrlSetFont(-1, 14, 400, 0, "Tahoma")
$pseudo = GUICtrlCreateLabel("Mon pseudo :", 16, 48, 85, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$cfg_pseudo = GUICtrlCreateInput("", 104, 48, 121, 21)
$saveinfo = GUICtrlCreateButton("Sauvegarder", 8, 88, 75, 25)
GUICtrlSetOnEvent($saveinfo,"saveInfo")
GUISetState(@SW_HIDE)
#EndRegion ### END Koda GUI section ###

; ----------------------------------------------------------------
; ------------------- Programme en lui même ----------------------
; ----------------------------------------------------------------

GUICtrlSetData($cfg_pseudo,IniRead($cfg,"Config","cfg_pseudo","VotrePseudo"))

TCPStartup()
$connected = TCPConnect(TCPNameToIP("irc.freenode.net"),$port)
TCPSend($connected,"NICK Naruxc27"&@CRLF)
TCPSend($connected,"USER Naruxc27 France pratchett Michael"&@CRLF)

While 1
;~  $msg = GUIGetMsg()
;~  Switch $msg
;~      Case $GUI_EVENT_CLOSE
;~          Exit

;~      Case $sendMsg
;~          TCPSend($connected, "PRIVMSG " & $channel & " :" & GUICTrlRead($inputMsg) & @CRLF)
;~          MsgBox(64,"test", "<" & $pseudo & "> " & GUICTRLRead($inputMsg))
;~          GUiCtrlsEtData($inputMsg, "")
;~  EndSwitch
    $row = TCPRecv($connected, 4000)
    If @error Then Exit
    If Not $row Then ContinueLoop
    $datasplit = StringSplit($row,@CRLF,1)
    For $i = 1 To $datasplit[0] Step 1
        If $datasplit[$i] <> "" Then _GUICTrlListBox_AddString($chat,$datasplit[$i])
        $datasplit2 = StringSplit($datasplit[$i], " ")
;~      _GUICTrlListBox_AddString($chat,$datasplit2[1]&$datasplit2[2]&$datasplit[3] & @CRLF)
        If $datasplit2[1] = "PING" Then
            TCPSend($connected, "PONG " & $datasplit2[2] & @CRLF)
        EndIf
        If $datasplit2[0] < 3 Then ContinueLoop
        Switch $datasplit2[2] ;on fait un switch pour faire des différences si le deuxieme mot est :
            Case "PRIVMSG" ; privmsg (donc on recoit du texte)
                $qui = StringMid($datasplit2[1], 2, StringInStr($datasplit2[1], "!") - 2) ;recuperer le pseudo de celui qui a écrit
                $quoi = StringMid($datasplit[$i], StringInStr($datasplit[$i], ":", 0, 2) + 1)
                $ou = $datasplit2[3] ;et sur quel canal
                _GUICtrlListBox_AddString($chat, "<" & $qui & "> " & $quoi)

            Case "001" ; 001 (c'est à dire qu'on a fini de se connecter, on établie la connexion au channel
                TCPSend($connected, "JOIN " & $channel & @CRLF) ;JOIN #channel
                _GUICtrlListBox_AddString($chat, "Vous êtes connecté.")
                _GUICtrlListBox_ResetContent($chat)

            Case "353"
                For $j = 6 To $datasplit2[0]
                _GUICTrlListBox_AddString($mbr, $datasplit2[$j])
                MsgBox(64,"data",$datasplit2[$j])
                Next


        EndSwitch
    Next
    if $row == -1 Then ExitLoop
    Sleep(100)
WEnd

If $connected <> -1 Then TCPCloseSocket($connected)
TCPShutdown()

; ----------------------------------------------------------------
; ------------------------- FONCTIONS ----------------------------
; ----------------------------------------------------------------

Func Echap()
    If @GUI_WinHandle == $TCFMessenger Then
        DllClose($hDLL)
        Exit
    ElseIf @GUI_WinHandle == $MyInfo Then
        GUISetState(@SW_HIDE,$MyInfo)
    EndIf
EndFunc

; Préchargement des données.
Func preLoad()
    ; En cours...
EndFunc

; Envoie le message écrit.
Func saveMsg()
    $MyPseudo = IniRead($cfg,"Config","cfg_pseudo","VotrePseudo")
    $Text = GUICtrlRead($inputMsg)
    $MyText = StringSplit(GUICtrlRead($inputMsg)," ")
    $MyTextSplit = StringSplit(GUICtrlRead($inputMsg)," ")
    ; Si il/elle presse entrée
    ; On vérifie que le message n'est pas vide
    Switch $MyTextSplit[1]
        Case "NICK"
            _sendCMD($MyText)
            _sendChat("Pseudo changer correctement en "&$MyTextSplit[2])

        Case "MSG"
            _sendCMD($MyText)
            _sendChat("Commande bien envoyer")

        Case Default
        If StringLen($Text) > 2 Then
            _sendCMD("PRIVMSG" &" "& "#TCFDrago" & " :" & $Text)
            _sendChat("["&@HOUR&":"&@MIN&":"&@SEC&"] " & $MyPseudo & ": " & $Text)
            _del($inputMsg)
        EndIf

    EndSwitch
    GUICtrlSetData($inputMsg,"")
EndFunc

; GUI 2
Func openMyInfo()
    GUISetState(@SW_SHOW,$MyInfo)
EndFunc

; Enregistre les données de la seconde fenêtre.
Func saveInfo()
    IniWrite($cfg,"Config","cfg_pseudo",GUICtrlRead($cfg_pseudo))
    GUISetState(@SW_HIDE,$MyInfo)
EndFunc

Func _del($set)
    GUICtrlSetData($set,"")
EndFunc

Func _sendCMD($val)
    TCPSend($connected,$val&@CRLF)
EndFunc

Func _sendChat($val)
    _GUICTrlListBox_AddString($chat, $val)
EndFunc
Quand je le met dans la boucle infini le TCP MSG, ça me sort " UNKNOW COMMAND " et quand je le met dans ma fonction ça me sort rien du tout. En faite je n'est pa sde réponse du serveur, j'y comprends rien du tout oO
Sea
Niveau 6
Niveau 6
Messages : 219
Enregistré le : ven. 22 juin 2012 18:51
Localisation : France
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#18

Message par Sea »

mica2727
Niveau 4
Niveau 4
Messages : 82
Enregistré le : jeu. 03 oct. 2013 17:32
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#19

Message par mica2727 »

Merci Sea, c'est exactement ce que je voulais, pouvoir trouvé tout seul en revenge aucun utilise le mode évènementiel donc je vais étudier tout ça au calme demain après midi, et en cas de problème je viendrais poster ici.

Sinon j'espère mettre le [R] :P
mica2727
Niveau 4
Niveau 4
Messages : 82
Enregistré le : jeu. 03 oct. 2013 17:32
Status : Hors ligne

Re: [..] Création d'un Chat Simpliste

#20

Message par mica2727 »

Bonjour,

En faite c'est bon je cloture, Epiknet refuse que les canaux sois " officiel " donc enregistrer.
Pour les autres fonctions on le devient quand on se connecte le premier.

Donc maintenant c'est pu du resors de la programmation, donc je met " résolu ".
Merci pour votre aide !!!
Répondre