PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Socket et mysql
Socket et mysql
Iniciado por Yann BOUSSATON, 24,ene. 2006 17:38 - 7 respuestas
Publicado el 24,enero 2006 - 17:38
bonjour,

j'aimerai réaliser un logiciel client se connectant a un logiciel serveur via les sockets.

le logiciel client enverrai des requetes sql

le logiciel serveur receptionnerai ses requetes, ferai la requete et renverrai le resultat au logiciel client.

la j'ai deja quelques probleme et quelques question:

sur le logiciel serveur:

INITIALISATION :

SI PAS SocketCrée("Serveur","8000") ALORS
// Erreur lors de la création de socket
Erreur("Impossible de créer la socket de lecture",ErreurInfo())
// Cette application ne peut pas fonctionner sans cette socket
FinProgramme()
SINON
ThreadExécute("Thread1", threadNormal, ProcédureAttente)
FIN

PROCEDUREATTENTE:

BOUCLE
SI SocketAttendConnexion("Serveur") ALORS
Canal est une chaîne
SocketAccepte("Serveur")
ThreadExécute("Canal", threadNormal, ProcedureGestion)
SORTIR
FIN
FIN

PROCEDUREGESTION:

TANTQUE SocketExiste ( "Serveur" )
sMsg est une chaîne = SocketLit ( "Serveur" , Vrai )
SI sMsg<>"" ALORS
ListeAjoute ( Fenêtre1.Messages1 , Maintenant () + " " + SocketClientInfo("Serveur",SocketAdresse) )
ListeAjoute ( Fenêtre1.Messages1 , Maintenant () + " " + sMsg )
FIN
FIN


Quand le logiciel client se connecte au serveur, le serveur me dis qu'il est bien connecter mais quand je fais un socketclientinfo je n'ai rien, ah si un jolie 0.

sinon quand sa veut bien fonctionner (par miracle) le logiciel client envoi un socketecrit (ex: socketecrit("Serveur", "Salut")) au serveur mais le logiciel serveur ne peut pas envoyer une socket au logicle client (ex: socketecrit("Serveur","ReSalut","192.168.0.2") ne fonctionne pas)


Je ne comprends rien mais bon je debute tout juste sur les sockets.


D'avance merci !
Publicado el 24,enero 2006 - 17:55
avant de travailler sur les sockets, sais-tu comment revoyer les
données (je parle du format de retour de n'importe quel SGBD)

Yann BOUSSATON a utilisé son clavier pour écrire :
bonjour,

j'aimerai réaliser un logiciel client se connectant a un logiciel serveur via
les sockets.

le logiciel client enverrai des requetes sql

le logiciel serveur receptionnerai ses requetes, ferai la requete et
renverrai le resultat au logiciel client.

la j'ai deja quelques probleme et quelques question:

sur le logiciel serveur:

INITIALISATION :

SI PAS SocketCrée("Serveur","8000") ALORS
// Erreur lors de la création de socket
Erreur("Impossible de créer la socket de lecture",ErreurInfo())
// Cette application ne peut pas fonctionner sans cette socket
FinProgramme()
SINON
ThreadExécute("Thread1", threadNormal, ProcédureAttente)
FIN

PROCEDUREATTENTE:

BOUCLE
SI SocketAttendConnexion("Serveur") ALORS
Canal est une chaîne
SocketAccepte("Serveur")
ThreadExécute("Canal", threadNormal, ProcedureGestion)
SORTIR
FIN
FIN

PROCEDUREGESTION:

TANTQUE SocketExiste ( "Serveur" )
sMsg est une chaîne = SocketLit ( "Serveur" , Vrai )
SI sMsg<>"" ALORS
ListeAjoute ( Fenêtre1.Messages1 , Maintenant () + " " +
SocketClientInfo("Serveur",SocketAdresse) ) ListeAjoute (
Fenêtre1.Messages1 , Maintenant () + " " + sMsg ) FIN
FIN


Quand le logiciel client se connecte au serveur, le serveur me dis qu'il est
bien connecter mais quand je fais un socketclientinfo je n'ai rien, ah si un
jolie 0.

sinon quand sa veut bien fonctionner (par miracle) le logiciel client envoi
un socketecrit (ex: socketecrit("Serveur", "Salut")) au serveur mais le
logiciel serveur ne peut pas envoyer une socket au logicle client (ex:
socketecrit("Serveur","ReSalut","192.168.0.2") ne fonctionne pas)


Je ne comprends rien mais bon je debute tout juste sur les sockets.


D'avance merci !



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Publicado el 24,enero 2006 - 18:25
pour l'instant j'ai reussi a ce que le logiciel client envoi une requete sql et que le logiciel client l'execute et renvoi le resultat.

Maintenant mon seul probleme c'est au nivau de la gestion du ou des sockets.

avec 1 logiciel client et un logiciel serveur tout fonctionne mais avec 2 logiciel client et 1 logiciel serveur et 1 socket sa plante.

Et je ne voit pas de ce que tu veut parler pour "je parle du format de retour de n'importe quel SGBD"? Si tu pouvez expliquer, merci.
Publicado el 24,enero 2006 - 18:54
dans quel format vas tu renvoyer au client le résultat de la requete ?
comment vas tu formater les données à renvoyer ?

Yann BOUSSATON avait écrit le 24/01/2006 :
pour l'instant j'ai reussi a ce que le logiciel client envoi une requete sql
et que le logiciel client l'execute et renvoi le resultat.

Maintenant mon seul probleme c'est au nivau de la gestion du ou des sockets.

avec 1 logiciel client et un logiciel serveur tout fonctionne mais avec 2
logiciel client et 1 logiciel serveur et 1 socket sa plante.

Et je ne voit pas de ce que tu veut parler pour "je parle du format de retour
de n'importe quel SGBD"? Si tu pouvez expliquer, merci.



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Publicado el 24,enero 2006 - 19:00
Bonsoir,

que cherhez vous à faire exactement?

Car si vous voulez "discuter" avec un serveur MySQL avec les sockets
bon courage, car le moteur ne vas pas interprèter directement des
ordres SQL, mais votre commande SQL doit passer par un "traducteur"
qui est la fonction de la libmysql.dll



"Yann BOUSSATON" <net-site@wanadoo.fr> writes:

bonjour,

j'aimerai réaliser un logiciel client se connectant a un logiciel
serveur via les sockets.

le logiciel client enverrai des requetes sql

le logiciel serveur receptionnerai ses requetes, ferai la requete et
renverrai le resultat au logiciel client.

la j'ai deja quelques probleme et quelques question:

sur le logiciel serveur:

INITIALISATION :

SI PAS SocketCrée("Serveur","8000") ALORS
// Erreur lors de la création de socket
Erreur("Impossible de créer la socket de
lecture",ErreurInfo())
// Cette application ne peut pas fonctionner sans cette socket
FinProgramme() SINON
ThreadExécute("Thread1", threadNormal, ProcédureAttente) FIN

PROCEDUREATTENTE:

BOUCLE
SI SocketAttendConnexion("Serveur") ALORS
Canal est une chaîne
SocketAccepte("Serveur")
ThreadExécute("Canal", threadNormal, ProcedureGestion)
SORTIR
FIN FIN

PROCEDUREGESTION:

TANTQUE SocketExiste ( "Serveur" )
sMsg est une chaîne = SocketLit ( "Serveur" , Vrai )
SI sMsg<>"" ALORS
ListeAjoute ( Fenêtre1.Messages1 , Maintenant () + " "
+ SocketClientInfo("Serveur",SocketAdresse) )
ListeAjoute ( Fenêtre1.Messages1 , Maintenant
() + " " + sMsg )
FIN
FIN


Quand le logiciel client se connecte au serveur, le serveur me dis
qu'il est bien connecter mais quand je fais un socketclientinfo je
n'ai rien, ah si un jolie 0.

sinon quand sa veut bien fonctionner (par miracle) le logiciel client
envoi un socketecrit (ex: socketecrit("Serveur", "Salut")) au serveur
mais le logiciel serveur ne peut pas envoyer une socket au logicle
client (ex: socketecrit("Serveur","ReSalut","192.168.0.2") ne
fonctionne pas)


Je ne comprends rien mais bon je debute tout juste sur les sockets.


D'avance merci !


--
suivre ce lien pour répondre:
http://cerbermail.com/…
Daniel
;-)
Publicado el 24,enero 2006 - 20:58
Dans une variable standard crypter. et sa fonctionne.

par contre je ne peut faire de requete complexe.
Publicado el 24,enero 2006 - 21:01
Salut!

Oulalalalalala! :-?

1°) Il faudrait, juste après voir créé ta socket serveur, régler le
mode de transmission par SocketChangeModetransmission.

2°) Revoie ta procédure d'attente car tu ne récupères pas le nom de ta
socket cliente créée et tu ne la passes pas à ta procédure de gestion!

Donc fais plutôt:

PROCEDUREATTENTE()

BOUCLE
SI PAS SocketExiste("Serveur") alors SORTIR
SI SocketAttendConnexion("Serveur") ALORS
Canal est une chaîne = SocketAccepte("Serveur")
SI PAS Canal="" _ET_ ThreadEtat(Canal)=ThreadInexistant ALORS
ThreadExécute(Canal,threadNormal,ProcedureGestion,Canal)
SINON
SI SocketExiste(Canal) ALORS SocketFreme(Canal)
FIN
FIN
FIN

3°) Revoie également ta procédure de gestion (Lecture sur la socket
cliente et non sur la socket serveur!)

PROCEDUREGESTION(Canal)

TANTQUE SocketExiste (Canal)
sMsg est une chaîne = SocketLit (canal,vrai)
SI sMsg<>"" ALORS
ListeAjoute ( Fenêtre1.Messages1 , Maintenant () + " " +
SocketClientInfo(Canal,SocketAdresse) )
ListeAjoute (
Fenêtre1.Messages1 , Maintenant () + " " + sMsg )
FIN
FIN


PS: Code tapé hors de Windev, donc, il y a peut-être des erreurs ;D
Publicado el 25,enero 2006 - 11:26
Bonjour,

Concernant la communication entre un Serveur d'écoute Socket et plusieurs Client Socket, je te conseille de voir du coté de l'exemple didactique "WD Utilisation des sockets".

Je m'en suis inspiré pour mettre en place un système de transmission d'informations entre les clients et un serveur, et cela marche très bien.

@+, JF