PDA

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