Bonjour,
J'ai besoin de votre aide sur les connections clients serveur en tcp, en effet malgré mes recherches sur le forum (et ailleurs) et mes tests. J'ai encore du mal a visualiser une solution "propre" a mon problème.
Le problème en soit est assez simple je veut que mes client puissent venir écrire dans un fichier texte sur mon serveur, or je ne veut pas perdre d'informations donc quitte a ce que ce soit un peut plus long je veut mettre en place une liste d'attente afin qu'un seul client puisse écrire a la fois dans le fichier (la dessus j'ai regarder les sémaphores et les mutex).
Il faut donc un serveur qui accepte toute les connections des clients les stocke dans une pile puis prend message par message pour l’écrire.
Et au vu des résultats de mes tests, je pense être entrain de me perdre.
Je ne sais pas du tout si j'ai été clair malheureusement, si quelqu'un a compris bah euh help et si personne ne comprendre rien je vais essayer de reformuler.
[..]Connection clients serveur en TCP
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- TommyDDR
- Modérateur
- Messages : 2087
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [..]Connection clients serveur en TCP
Les sémaphores et mutex ne vous serviront que si vous faites du multi-threading ou multi-process, ici je doute que ça ne soit le cas.
Quelle est la taille des données envoyées par vos clients ? (quelques octets, Ko, Mo ?)
Si la taille est petite, vous devriez pouvoir tout écrire d'un coup
Si elle est moyenne, vous pouvez stocker temporairement les données à écrire dans un tableau et avoir une fonction qui, quand des données sont disponible dans le tableau va les écrire dans le fichier.
Si les données sont lourdes, vous pouvez faire des fichiers temporaires avec encore une fois un fonction qui va détecter ces fichiers et consolider le tout.
Quelle est la taille des données envoyées par vos clients ? (quelques octets, Ko, Mo ?)
Si la taille est petite, vous devriez pouvoir tout écrire d'un coup
Si elle est moyenne, vous pouvez stocker temporairement les données à écrire dans un tableau et avoir une fonction qui, quand des données sont disponible dans le tableau va les écrire dans le fichier.
Si les données sont lourdes, vous pouvez faire des fichiers temporaires avec encore une fois un fonction qui va détecter ces fichiers et consolider le tout.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Re: [..]Connection clients serveur en TCP
D'accord pour les sémaphore (et un problème de moins parfait ^^).
Pour les données envoyées par les clients c'est juste du texte qui peut aller de très peut de caractère a un paragraphe environ donc des données assez petites au final. Cependant l’idée du tableau me plaît bien, au moins pour éviter de perdre des données.
En revanche je n'ai toujours pas compris comment faire pour avoir un serveur multi clients (j'ai bien des clients fonctionnels et un serveur qui reçois bien les messages mais un seul client peut s'y connecter et quand il a fini de transmettre le serveur se coupe.)
Pour les données envoyées par les clients c'est juste du texte qui peut aller de très peut de caractère a un paragraphe environ donc des données assez petites au final. Cependant l’idée du tableau me plaît bien, au moins pour éviter de perdre des données.
En revanche je n'ai toujours pas compris comment faire pour avoir un serveur multi clients (j'ai bien des clients fonctionnels et un serveur qui reçois bien les messages mais un seul client peut s'y connecter et quand il a fini de transmettre le serveur se coupe.)
- TommyDDR
- Modérateur
- Messages : 2087
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [..]Connection clients serveur en TCP
Ce type de problème est spécifique à votre code, sans celui-ci, il sera compliqué de vous aider
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679