|
| Iniciado por alexion, 25,jul. 2019 10:03 - 7 respuestas |
| |
| | | |
|
| |
Miembro registrado 117 mensajes |
|
| Publicado el 25,julio 2019 - 10:03 |
Bonjour tout le monde,
Je me permets de vous faire lire ce message car je suis en quête de vos lumières afin d'éclaircir les ténèbres qui m'entourent.
Je cherche à réaliser une application multi-poste où chaque poste pc serait un serveur utilisant la technologie des sokets et à la fois un client se connectant aux sockets de tout les utilisateurs présents sur le réseau.
Pour ce faire, j'ai un fichier d'analyse recensant toutes les adresses IP et nom de machine qui pourraient potentiellement être présente sur le réseau et je lance un thread qui va parcourir mon fichier d'utilisateurs afin de se connecter aux serveurs qui sont eux même connectés sur le réseau
Procedure ConnexionAuxServeurs()
sAdresseIP est une chaîne sNomutilisateur est une chaîne
HLitPremier(UTILISATEURS, IDUTILISATEURS)
Socket.Option = SocketOptimiseConnexionIP
TANTQUE PAS HEnDehors(UTILISATEURS) sAdresseIP = UTILISATEURS.AdresseIP sNomutilisateur = UTILISATEURS.NomUtilisateur SI sNomutilisateur <> NetNomMachine() ET UTILISATEURS.EstConnecté = Faux ALORS SI SocketConnecte(sNomutilisateur, gnPortEcoute, NetAdresseIP(sAdresseIP)) ALORS SI ErreurDétectée ALORS Erreur("Impossible de se connecter au serveur",ErreurInfo()) SINON FIN SINON SI UTILISATEURS.EstConnecté = Vrai UTILISATEURS.EstConnecté = Faux HModifie(UTILISATEURS) FIN FIN SINON SI sNomutilisateur <> NetNomMachine() ET UTILISATEURS.EstConnecté = Vrai ALORS SI PAS SocketConnecte(sNomutilisateur, gnPortEcoute, NetAdresseIP(sAdresseIP)) ALORS UTILISATEURS.EstConnecté = Faux HModifie(UTILISATEURS) FIN FIN FIN HLitSuivant(UTILISATEURS) FIN
RaffraichissementTable()
Je cherche à savoir s'il existe une fonction permettant de savoir si l'on est déjà connecté à un socket ou pas car lors du deuxième passage dans le thread (et donc lors de la deuxième lecture du fichier utilisateurs), je reçois un magnifique message d'erreur :
"Erreur à la ligne 36 du traitement Procédure locale ConnexionAuxServeurs. Vous avez appelé la fonction SocketConnecte. Vous avez appelé la méthode CréeSocket en demandant test comme nom pour la socket; or, une socket de ce nom existe déjà."
Merci d'avance pour votre aide |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 117 mensajes |
|
| Publicado el 25,julio 2019 - 10:12 |
ah et aussi, pour une raison que je ne m'explique pas, quand je lance le projet en mode débuguage et que je parcours les différents traitements pas à pas, quand j'arrive sur une condition testant le boolean "EstConnecté" (champ que j'ai ajouté quelques temps après la création du fichier utilisateurs dans le but de vérifier la connectivité du socket), j'ai l'impression qu'il ne teste pas cette condition car quand il récupère les informations de l'utilisateur en cours, il ne récupère pas la valeur du boolean

|
| |
| |
| | | |
|
| | |
| |
| Publicado el 25,julio 2019 - 10:15 |
| Would it not be simpler to use MQTT in your concept. All client PC's listen to 1 and the same messaging queueu. If data is put into this queue, you get an event on all clients, no need to keep all IP addresses etc... |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 117 mensajes |
|
| Publicado el 25,julio 2019 - 10:25 |
Danny a écrit : > Would it not be simpler to use MQTT in your concept. All client PC's listen to 1 and the same messaging queueu. If data is put into this queue, you get an event on all clients, no need to keep all IP addresses etc...
it could be simpler but the project I'm working on is part of an internship and my tutor asked me to use sockets technology |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.002 mensajes |
|
| Publicado el 25,julio 2019 - 10:31 |
Bonjour,
Dans un premier temps, ce que tu peux faire c'est de creer 2 sockets,
un pour le socket "serveur" avec un port, un pour le socket "client" avec un autre port different du premier
Ensuite tu peux suivre ce webinaire pour voir comment tu peux "tagger" chaque client et creer autant de tache parallele que de client et de les faire communiquer entre eux
Jordan |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 117 mensajes |
|
| Publicado el 25,julio 2019 - 10:42 |
| Merci pour cette réponse, cependant la tentative de lecture de la vidéo jointe me renvoie une erreur de lecture |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.002 mensajes |
|
| Publicado el 25,julio 2019 - 11:00 |
Je te remet le lien
https://www.youtube.com/embed/Wm6EfV_jG1I
Jordan |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 117 mensajes |
|
| Publicado el 25,julio 2019 - 11:02 |
| |
| |
| | | |
|
| | | | |
| | |
|