View Full Version : client serveur sous ubuntu
dark of angel
January 1st, 2010, 04:15 PM
salut atous
et bonne année pour tous
je veux programmer un petit programme de [tchat]entre en client et un serveur et pour cela je veus de l'aide et est ce que il ya un exemple facile a comprendre
par exemple le code source qui gere cette manipulation
et merci pour tous
SalahTr
January 2nd, 2010, 03:05 AM
Salut dark of angel,
Bonne année à toi aussi, quel langage de programmation tu veux utiliser :?:
dark of angel
January 2nd, 2010, 08:49 AM
merci
je préfère utiliser le Gambas le plus important que l'application tourne et soit avec un code compréhensible
SalahTr
January 3rd, 2010, 04:47 AM
Client:
STATIC App AS ClsMain
PUBLIC MySock AS Socket
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Cette Méthode sera appelé lorsque la connexion est établit
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
PUBLIC SUB MySock_Ready()
WRITE #MySock,"Hello",5
'Envoyer au serveur (MySock) la chaine "Hello" ayant la taille 5
END
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Cette Méthode sera appelé lorsque des données arrivent
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
PUBLIC SUB MySock_Read()
DIM chaine AS String
READ #MySock,chaine,Lof(MySock)
' Lire les données à partir de serveur (MySock)
' Les données seront sauvegardés dans "chaine"
' Lof(MySock) retourne la taille des données à lire
PRINT chaine
' Afficher la chaine lue
CLOSE #MySock
' Fermer la connexion, cela permet de libérer les ressources
END
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Constructeur
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
PUBLIC SUB _New()
MySock=NEW Socket AS "MySock"
MySock.Connect("name_of_host",3450)
' Il faut remplacer name_of_host par le nom du poste serveur
' 3450 est à partir de quel le serveur reçoit les connexions
END
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Cette Méthode sera appelé lorsqu'il y a une erreur (le port n'est pas
' ouvert , le réseau n'est pas accessible, le serveur refuse la connexion...)
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
PUBLIC SUB MySock_Error()
PRINT "Connexion impossible "
END
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Point d'entrée du programme
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
STATIC PUBLIC SUB Main()
App=NEW ClsMain
END
Serveur:
STATIC Server AS ClsServer
PUBLIC Clients AS Object[]
PUBLIC Srv AS ServerSocket
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Cette Méthode sera lorsque des données arrivent au serveur
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
PUBLIC SUB Socket_Read()
DIM chaine AS String
READ #LAST,chaine,Lof(LAST)
' Lire les données envoyés par le client
' LAST contient le nom du client
' Les données seront sauvegarder dans chaine
' Lof(LAST) retourne la taille des données
PRINT "Les données reçues -->" & chaine
' Afficher les données envoyés
WRITE #LAST,"bye",3
' Envoyé au client le message "bye"
END
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Cette Méthode sera lorsque un client ferme la connexion
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
PUBLIC SUB Socket_Closed()
PRINT "Connexion fermée"
Clients.Remove(Clients.Find(LAST))
' Supprimer du tableau "Clients" le client
' qui a fermé la connexion
END
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Cette Méthode sera lorsque un client
' veut établir une connexion avec le serveur
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
PUBLIC SUB Srv_Connection(Host AS String)
DIM MySock AS Socket
PRINT " Acceptation de la connexion venant de --> " & Host
' "Host" contient le nom du client qui veut établir la connexion
MySock=Srv.Accept()
' Srv.Accept() retourne Un socket permettant de communiquer avec "Host"
Clients.Add(MySock)
END
PUBLIC SUB _New()
Clients =NEW Object[]
' Le tableau Clients contiendra la liste des clients
Srv=NEW ServerSocket AS "Srv"
Srv.Port=3450
' 3450 le port à partir du quel le Serveur reçoit les connexion
Srv.Type=ServerSocket.Internet
' Srv.Type reçoit le type de connexions (le protocole utilisé) que le serveur peut accepter
' ServerSocket.Internet => Connexion TCP/IP
Srv.Listen()
' Lancement du serveur
' Le serveur attend des connexions
END
STATIC PUBLIC SUB Main()
Server=NEW ClsServer
END
URL :
http://gambasdoc.org/help... (code source & Explication) [Fr] (http://gambasdoc.org/help/doc/network?fr#t10)
Documentation de la classe Socket [Fr] (http://gambasdoc.org/help/comp/gb.net/socket?fr)
Documentation de la classe ServerSocket [En] (http://gambasdoc.org/help/comp/gb.net/serversocket)
SalahTr
January 3rd, 2010, 04:58 AM
je préfère utiliser le Gambas le plus important que l'application tourne et soit avec un code compréhensible
une application qui tourne et un code compréhensible dépend de l'habileté du programmeur et non du langage ;)
SalahTr
January 3rd, 2010, 05:08 AM
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Constructeur
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
PUBLIC SUB _New()
MySock=NEW Socket AS "MySock"
MySock.Connect("name_of_host",3450)
' Il faut remplacer name_of_host par le nom du poste serveur
' 3450 est à partir de quel le serveur reçoit les connexions
END[/CODE]
Le constructeur sera appelé pour établir la connexion avec le serveur
dark of angel
January 7th, 2010, 08:19 PM
Client:
STATIC App AS ClsMain
PUBLIC MySock AS Socket
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Cette Méthode sera appelé lorsque la connexion est établit
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
PUBLIC SUB MySock_Ready()
WRITE #MySock,"Hello",5
'Envoyer au serveur (MySock) la chaine "Hello" ayant la taille 5
END
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Cette Méthode sera appelé lorsque des données arrivent
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
PUBLIC SUB MySock_Read()
DIM chaine AS String
READ #MySock,chaine,Lof(MySock)
' Lire les données à partir de serveur (MySock)
' Les données seront sauvegardés dans "chaine"
' Lof(MySock) retourne la taille des données à lire
PRINT chaine
' Afficher la chaine lue
CLOSE #MySock
' Fermer la connexion, cela permet de libérer les ressources
END
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Constructeur
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
PUBLIC SUB _New()
MySock=NEW Socket AS "MySock"
MySock.Connect("name_of_host",3450)
' Il faut remplacer name_of_host par le nom du poste serveur
' 3450 est à partir de quel le serveur reçoit les connexions
END
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Cette Méthode sera appelé lorsqu'il y a une erreur (le port n'est pas
' ouvert , le réseau n'est pas accessible, le serveur refuse la connexion...)
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
PUBLIC SUB MySock_Error()
PRINT "Connexion impossible "
END
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Point d'entrée du programme
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
STATIC PUBLIC SUB Main()
App=NEW ClsMain
END
Serveur:
STATIC Server AS ClsServer
PUBLIC Clients AS Object[]
PUBLIC Srv AS ServerSocket
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Cette Méthode sera lorsque des données arrivent au serveur
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
PUBLIC SUB Socket_Read()
DIM chaine AS String
READ #LAST,chaine,Lof(LAST)
' Lire les données envoyés par le client
' LAST contient le nom du client
' Les données seront sauvegarder dans chaine
' Lof(LAST) retourne la taille des données
PRINT "Les données reçues -->" & chaine
' Afficher les données envoyés
WRITE #LAST,"bye",3
' Envoyé au client le message "bye"
END
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Cette Méthode sera lorsque un client ferme la connexion
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
PUBLIC SUB Socket_Closed()
PRINT "Connexion fermée"
Clients.Remove(Clients.Find(LAST))
' Supprimer du tableau "Clients" le client
' qui a fermé la connexion
END
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
' Cette Méthode sera lorsque un client
' veut établir une connexion avec le serveur
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''
PUBLIC SUB Srv_Connection(Host AS String)
DIM MySock AS Socket
PRINT " Acceptation de la connexion venant de --> " & Host
' "Host" contient le nom du client qui veut établir la connexion
MySock=Srv.Accept()
' Srv.Accept() retourne Un socket permettant de communiquer avec "Host"
Clients.Add(MySock)
END
PUBLIC SUB _New()
Clients =NEW Object[]
' Le tableau Clients contiendra la liste des clients
Srv=NEW ServerSocket AS "Srv"
Srv.Port=3450
' 3450 le port à partir du quel le Serveur reçoit les connexion
Srv.Type=ServerSocket.Internet
' Srv.Type reçoit le type de connexions (le protocole utilisé) que le serveur peut accepter
' ServerSocket.Internet => Connexion TCP/IP
Srv.Listen()
' Lancement du serveur
' Le serveur attend des connexions
END
STATIC PUBLIC SUB Main()
Server=NEW ClsServer
END
URL :
http://gambasdoc.org/help... (code source & Explication) [Fr] (http://gambasdoc.org/help/doc/network?fr#t10)
Documentation de la classe Socket [Fr] (http://gambasdoc.org/help/comp/gb.net/socket?fr)
Documentation de la classe ServerSocket [En] (http://gambasdoc.org/help/comp/gb.net/serversocket)
MERCI C VREMANT c tres gentil de ta part de faire cet effort
et je te felicite pour e boulot
SalahTr
January 7th, 2010, 08:47 PM
je t'en prie
Powered by vBulletin® Version 4.2.2 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.