Tchat avec Delphi
Fermé
amegantona
Messages postés
2
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
8 septembre 2003
-
8 sept. 2003 à 12:48
Zicson1 - 27 nov. 2008 à 16:43
Zicson1 - 27 nov. 2008 à 16:43
A voir également:
- Tchat avec Delphi
- Coco tchat - Accueil - Réseaux sociaux
- Remplaçant de Coco : quelles solutions pour tchater gratuitement en ligne ? - Accueil - Réseaux sociaux
- Telecharger delphi 7 - Télécharger - Langages
- Tchat locaux ✓ - Forum Vos droits sur internet
- Tchat adulte ✓ - Forum Mail
4 réponses
Les sockets servent à communiquer deux ordinateurs distant par le billet du protocole TCP/IP.
Le but est de pouvoir transférer des données ou échanger des données d'un ordinateur à un autre.
Pour communiquer, on a besoin de deux sources : un programme serveur et un programme client.
Tout d'abord, le programme serveur ouvre la connexion au socket par le numéro d'identification de la connexion avec le socket serveur appelé également "Port" et se met en écoute des requêtes du programme client. Le programme client se connecte à l'ordinateur du programme serveur par l'adresse IP. Puis, ouvre la connexion au socket client par le port. Les deux sources sont maintenant relier, il ne reste plus qu'à échanger les données du programme client au programme serveur.
Pour utiliser les sockets en Delphi, vous devez utiliser deux composants qui se trouvent dans l'onglet "Internet" dans la palette de composants :
TServerSocket
Ce composant permet de spécifier le port que vous utilisez et écoute les requêtes du socket client.
TClientSocket
Ce composant permet de spécifier le socket serveur auquel vous voulez vous connecté, le port que vous utilisez et envoit le texte au serveur.
Sous Delphi 7, les composants TServerSocket et TClientSocket ne sont pas installés par défaut. Toutefois, vous pouvez les installer manuellement. Il se trouve dans le répertoire de Delphi : "Bin/dclsockets70.bpl".
Création du programme serveur
Ajouter trois composants TGroupBox, deux TButton, deux TEdit, deux TLabel, un TMemo et un TServerSocket.
"Edit1" servira à inscrire le port.
"Edit2" permet la visualisation d'un fichier reçu.
"Button1" est le bouton de connexion.
"Button2" est le bouton de déconnexion.
"Memo1" donne l'état de la connexion.
Se connecter
Pour se connecter, le serveur doit définir le port de l'ordinateur du programme client.
Le port est un numéro compris entre 1024 et 65535 inclus.
La méthode "Open" ouvre la connexion de socket.
Exemple
procedure TForm1.Button1Click(Sender: TObject);
begin
ServerSocket1.Port:=StrtoInt(Edit1.Text);
ServerSocket1.Open;
end;
Se déconnecter
Pour se déconnecter, il suffit d'utiliser la méthode "Close" qui ferme la connexion de socket.
Exemple
procedure TForm1.Button2Click(Sender: TObject);
begin
ServerSocket1.Close;
end;
Lire les informations
L'événement OnClientRead permet de lire les informations reçues des sockets.
On utiisera Edit2 pour récupérer ses informations.
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Lecture des informations effecuées');
Edit2.Text:=Socket.ReceiveText;
end;
La gestion des événements
Les événement du composant TServerSocket permettont au programme de connaitre l'état de la connexion et gérer les erreurs si il y en a.
L'événement "OnAccept" se produit immédiatement après l'acceptation de la connexion avec un socket client.
"OnClientConnect" se produit quand un socket client mène à bien une connexion acceptée par le socket serveur.
"OnClientDisconnect" se produit quand l'une des connexions avec un socket client est fermée.
"OnListen" survient juste avant l'ouverture d'un socket serveur en écoute.
"OnClientError" se produit lors d'un échec de connexion avec un socket client.
procedure TForm1.ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Connécté à '+Socket.RemoteAddress);
end;
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Connexion acceptée par le socket serveur');
end;
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Déconnécté');
end;
procedure TForm1.ServerSocket1Listen(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('A l''écoute...');
end;
procedure TForm1.ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
if ErrorEvent=eeGeneral then
Memo1.Lines.Add('Erreur inattendu');
if ErrorEvent=eeSend then
Memo1.Lines.Add('Erreur d''écriture sur la connexion socket');
if ErrorEvent=eeReceive then
Memo1.Lines.Add('Erreur de lecture sur la connexion socket');
if ErrorEvent=eeConnect then
Memo1.Lines.Add('Une demande de connexion déjà acceptée n''a pas pu être achevée');
if ErrorEvent=eeDisconnect then
Memo1.Lines.Add('Erreur de fermeture d''une connexion');
if ErrorEvent=eeAccept then
Memo1.Lines.Add('Erreur d''acceptation d''une demande de connexion cliente');
end;
"Memo1.Lines.Add('test')" ajoute dans le Memo1 le texte 'test'.
Création du programme client
Ajouter trois composants TGoupBox, trois TButton, trois TEdit, trois TLabel et un TClientSocket.
"Button1" est le bouton de connexion.
"Button2" est le bouton de déconnexion.
"Button3" est le bouton pour transmettre le texte au programme serveur.
"Edit1" est le port utilisé pour la connexion.
"Edit2" est l'adresse IP de l'ordinateur du programme serveur.
"Edit3" est le texte que l'on veut transmettre au programme serveur.
"Memo1" donne l'état de la connexion.
Se connecter
Comme pour le composant TServerSocket, TClientSocket,
"Host" définit l'adresse IP de l'ordinateur su programme serveur.
"Open" ouvre la connexion de socket.
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Port:=StrToInt(Edit1.Text);
ClientSocket1.Host := Edit2.Text;
ClientSocket1.Open;
end;
Se déconnécter
Pour se déconnecter, il suffit d'utiliser la méthode "Close" pour fermer la connexion de socket.
procedure TForm1.Button2Click(Sender: TObject);
begin
ClientSocket1.Close;
end;
Transmettre du texte au serveur
Pour envoyer du texte au serveur, on utilise "SendText".
Edit4 est le texte que l'on veut transmettre.
procedure TForm1.Button3Click(Sender: TObject);
begin
ClientSocket1.Socket.SendText(Edit4.Text);
Memo1.Lines.Add('Informations envoyées au serveur');
end;
La gestion des événements
La gestion des événements se fait de la même façon qu'avec le composant TServersocket.
L'événement "OnConnect" se produit immédiatement après l'ouverture de la connexion avec le serveur.
"RemoteHost" donne le nom de l'ordianteur distant auquel on est connecté.
"OnConnecting" se produit une fois que le socket serveur a été localisé.
"OnDisconnect" se produit juste avant qu'un socket client ne ferme la connexion avec un socket serveur.
"OnError" se produit lorsqu'il y eu une erreur. Avec "ErrorEvent", on gère à l'affichage dans le mem, le type de l'erreur.
procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Connecté à '+Socket.RemoteHost);
end;
procedure TForm1.ClientSocket1Connecting(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Serveur a été trouvé');
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Déconnecté');
end;
procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
if ErrorEvent=eeGeneral then
Memo1.Lines.Add('Erreur inattendu');
if ErrorEvent=eeSend then
Memo1.Lines.Add('Erreur d''écriture sur la connexion socket');
if ErrorEvent=eeReceive then
Memo1.Lines.Add('Erreur de lecture sur la connexion socket');
if ErrorEvent=eeConnect then
Memo1.Lines.Add('Une demande de connexion déjà acceptée n''a pas pu être achevée');
if ErrorEvent=eeDisconnect then
Memo1.Lines.Add('Erreur de fermeture d''une connexion');
if ErrorEvent=eeAccept then
Memo1.Lines.Add('Erreur d''acceptation d''une demande de connexion cliente');
end;
Bonne comprehenssion
Le but est de pouvoir transférer des données ou échanger des données d'un ordinateur à un autre.
Pour communiquer, on a besoin de deux sources : un programme serveur et un programme client.
Tout d'abord, le programme serveur ouvre la connexion au socket par le numéro d'identification de la connexion avec le socket serveur appelé également "Port" et se met en écoute des requêtes du programme client. Le programme client se connecte à l'ordinateur du programme serveur par l'adresse IP. Puis, ouvre la connexion au socket client par le port. Les deux sources sont maintenant relier, il ne reste plus qu'à échanger les données du programme client au programme serveur.
Pour utiliser les sockets en Delphi, vous devez utiliser deux composants qui se trouvent dans l'onglet "Internet" dans la palette de composants :
TServerSocket
Ce composant permet de spécifier le port que vous utilisez et écoute les requêtes du socket client.
TClientSocket
Ce composant permet de spécifier le socket serveur auquel vous voulez vous connecté, le port que vous utilisez et envoit le texte au serveur.
Sous Delphi 7, les composants TServerSocket et TClientSocket ne sont pas installés par défaut. Toutefois, vous pouvez les installer manuellement. Il se trouve dans le répertoire de Delphi : "Bin/dclsockets70.bpl".
Création du programme serveur
Ajouter trois composants TGroupBox, deux TButton, deux TEdit, deux TLabel, un TMemo et un TServerSocket.
"Edit1" servira à inscrire le port.
"Edit2" permet la visualisation d'un fichier reçu.
"Button1" est le bouton de connexion.
"Button2" est le bouton de déconnexion.
"Memo1" donne l'état de la connexion.
Se connecter
Pour se connecter, le serveur doit définir le port de l'ordinateur du programme client.
Le port est un numéro compris entre 1024 et 65535 inclus.
La méthode "Open" ouvre la connexion de socket.
Exemple
procedure TForm1.Button1Click(Sender: TObject);
begin
ServerSocket1.Port:=StrtoInt(Edit1.Text);
ServerSocket1.Open;
end;
Se déconnecter
Pour se déconnecter, il suffit d'utiliser la méthode "Close" qui ferme la connexion de socket.
Exemple
procedure TForm1.Button2Click(Sender: TObject);
begin
ServerSocket1.Close;
end;
Lire les informations
L'événement OnClientRead permet de lire les informations reçues des sockets.
On utiisera Edit2 pour récupérer ses informations.
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Lecture des informations effecuées');
Edit2.Text:=Socket.ReceiveText;
end;
La gestion des événements
Les événement du composant TServerSocket permettont au programme de connaitre l'état de la connexion et gérer les erreurs si il y en a.
L'événement "OnAccept" se produit immédiatement après l'acceptation de la connexion avec un socket client.
"OnClientConnect" se produit quand un socket client mène à bien une connexion acceptée par le socket serveur.
"OnClientDisconnect" se produit quand l'une des connexions avec un socket client est fermée.
"OnListen" survient juste avant l'ouverture d'un socket serveur en écoute.
"OnClientError" se produit lors d'un échec de connexion avec un socket client.
procedure TForm1.ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Connécté à '+Socket.RemoteAddress);
end;
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Connexion acceptée par le socket serveur');
end;
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Déconnécté');
end;
procedure TForm1.ServerSocket1Listen(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('A l''écoute...');
end;
procedure TForm1.ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
if ErrorEvent=eeGeneral then
Memo1.Lines.Add('Erreur inattendu');
if ErrorEvent=eeSend then
Memo1.Lines.Add('Erreur d''écriture sur la connexion socket');
if ErrorEvent=eeReceive then
Memo1.Lines.Add('Erreur de lecture sur la connexion socket');
if ErrorEvent=eeConnect then
Memo1.Lines.Add('Une demande de connexion déjà acceptée n''a pas pu être achevée');
if ErrorEvent=eeDisconnect then
Memo1.Lines.Add('Erreur de fermeture d''une connexion');
if ErrorEvent=eeAccept then
Memo1.Lines.Add('Erreur d''acceptation d''une demande de connexion cliente');
end;
"Memo1.Lines.Add('test')" ajoute dans le Memo1 le texte 'test'.
Création du programme client
Ajouter trois composants TGoupBox, trois TButton, trois TEdit, trois TLabel et un TClientSocket.
"Button1" est le bouton de connexion.
"Button2" est le bouton de déconnexion.
"Button3" est le bouton pour transmettre le texte au programme serveur.
"Edit1" est le port utilisé pour la connexion.
"Edit2" est l'adresse IP de l'ordinateur du programme serveur.
"Edit3" est le texte que l'on veut transmettre au programme serveur.
"Memo1" donne l'état de la connexion.
Se connecter
Comme pour le composant TServerSocket, TClientSocket,
"Host" définit l'adresse IP de l'ordinateur su programme serveur.
"Open" ouvre la connexion de socket.
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Port:=StrToInt(Edit1.Text);
ClientSocket1.Host := Edit2.Text;
ClientSocket1.Open;
end;
Se déconnécter
Pour se déconnecter, il suffit d'utiliser la méthode "Close" pour fermer la connexion de socket.
procedure TForm1.Button2Click(Sender: TObject);
begin
ClientSocket1.Close;
end;
Transmettre du texte au serveur
Pour envoyer du texte au serveur, on utilise "SendText".
Edit4 est le texte que l'on veut transmettre.
procedure TForm1.Button3Click(Sender: TObject);
begin
ClientSocket1.Socket.SendText(Edit4.Text);
Memo1.Lines.Add('Informations envoyées au serveur');
end;
La gestion des événements
La gestion des événements se fait de la même façon qu'avec le composant TServersocket.
L'événement "OnConnect" se produit immédiatement après l'ouverture de la connexion avec le serveur.
"RemoteHost" donne le nom de l'ordianteur distant auquel on est connecté.
"OnConnecting" se produit une fois que le socket serveur a été localisé.
"OnDisconnect" se produit juste avant qu'un socket client ne ferme la connexion avec un socket serveur.
"OnError" se produit lorsqu'il y eu une erreur. Avec "ErrorEvent", on gère à l'affichage dans le mem, le type de l'erreur.
procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Connecté à '+Socket.RemoteHost);
end;
procedure TForm1.ClientSocket1Connecting(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Serveur a été trouvé');
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Déconnecté');
end;
procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
if ErrorEvent=eeGeneral then
Memo1.Lines.Add('Erreur inattendu');
if ErrorEvent=eeSend then
Memo1.Lines.Add('Erreur d''écriture sur la connexion socket');
if ErrorEvent=eeReceive then
Memo1.Lines.Add('Erreur de lecture sur la connexion socket');
if ErrorEvent=eeConnect then
Memo1.Lines.Add('Une demande de connexion déjà acceptée n''a pas pu être achevée');
if ErrorEvent=eeDisconnect then
Memo1.Lines.Add('Erreur de fermeture d''une connexion');
if ErrorEvent=eeAccept then
Memo1.Lines.Add('Erreur d''acceptation d''une demande de connexion cliente');
end;
Bonne comprehenssion
Utilisateur anonyme
12 févr. 2008 à 15:07
12 févr. 2008 à 15:07
Bonjour,
merci d'aller voir sur cette convers. et de m'aider si possible
bonne journée
merci d'aller voir sur cette convers. et de m'aider si possible
bonne journée