[R] Création d'un Chat Simpliste
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Création d'un Chat Simpliste
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.
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

- Messages : 219
- Enregistré le : ven. 22 juin 2012 18:51
- Localisation : France
- Status : Hors ligne
Re: [..] Création d'un Chat Simpliste
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
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
Re: [..] Création d'un Chat Simpliste
Tu peut t'aider de ça si tu veux http://autoitscript.fr/forum/viewtopic. ... ilit=diall
Re: [..] Création d'un Chat Simpliste
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 ?
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 ?
- PandiPanda
- 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
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 ^^
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
Re: [..] Création d'un Chat Simpliste
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.
EDIT : J'y avais pensé au serveur IRC mais pour moi ils sont payant, j'en avais pas trouver de gratuit.
- PandiPanda
- 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
Perso,
j'utilise "irc.freenode.org" ou "Vidar.IRC.Worldnet.Net"
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
Re: [..] Création d'un Chat Simpliste
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()
( 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()
- PandiPanda
- 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
Code : Tout sélectionner
Global $serveur = "irc.freenode.org"
Global $port = 6667- 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
Re: [..] Création d'un Chat Simpliste
Voila mon code :
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
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()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
- PandiPanda
- 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
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.
Ici un lien expliquant le protocole IRC
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
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Re: [..] Création d'un Chat Simpliste
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.
ça renvoie : 0 puis 0 et 0 !
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
WEndRe: [..] Création d'un Chat Simpliste
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.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... )
- PandiPanda
- 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
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;
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 ...
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
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
Re: [..] Création d'un Chat Simpliste
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 ^^
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 ^^
- PandiPanda
- 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
► Afficher le texte
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
Re: [..] Création d'un Chat Simpliste
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 :
Puis après :
Mais sa me retourne rien...
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
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)Code : Tout sélectionner
TCPSend($connected,"MSG CHANSERV REGISTER #MonSalon MotDePasseDuSalon DescriptionDuSalon" &@CRLF)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-
Sea
- Niveau 6

- Messages : 219
- Enregistré le : ven. 22 juin 2012 18:51
- Localisation : France
- Status : Hors ligne
Re: [..] Création d'un Chat Simpliste
Pense à utiliser la balise spoiler quand tu as beaucoup de code 
http://www.autoitscript.com/forum/topic ... ayirc-022/
http://www.autoitscript.com/forum/topic/43515-irc-udf/
http://www.autoitscript.com/forum/topic ... -75-pages/
http://www.cheat-gam3.com/2-cours-pour- ... bot-23605/
http://www.autoitscript.com/forum/topic ... ayirc-022/
http://www.autoitscript.com/forum/topic/43515-irc-udf/
http://www.autoitscript.com/forum/topic ... -75-pages/
http://www.cheat-gam3.com/2-cours-pour- ... bot-23605/
Re: [..] Création d'un Chat Simpliste
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]
Sinon j'espère mettre le [R]
Re: [..] Création d'un Chat Simpliste
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 !!!
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 !!!

