Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CLIENT SERVEUR GENERIQUE MULTI-CLIENT SERIALISATION/DESERIALISATION DES ECHANGES


Information sur la source

Catégorie :Réseaux & Internet Source .NET ( DotNet ) Classé sous : thread, socket, clientserveur, sérialisation Niveau : Débutant Date de création : 07/02/2008 Date de mise à jour : 12/02/2008 23:12:43 Vu / téléchargé: 9 404 / 1 268

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

Apllication client serveur génerique, à base de sockets tcp et de thread, car l'envoi et la réception se fait via la sérialisation d'une instance d'objet de la classe 'connex'.
Toutes applications mono-poste développées selon les principes MVC peuvent  facilement être intégrées dans ce C/S.En effet la vue sera initialisée coté client après la connexion, le modèle et le contrôleur sont appelés dans le thread de traitement des messages cote serveur.

L' intégration de vos traitements spécifiques est  clairement délimitée 2 zones dans le client après connexion sur le serveur et après réception d'un message , 2 zones dans le serveur après déconnexion d'un client et dans le thread de traitement des réceptions .

NB : l'assembly client doit être intégré cote serveur pour assurer la sérialisation.

BON COURAGE !

 

Conclusion

Merci à tous les codes sources sur le c/s et les sockets !
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

07 février 2008 01:52:13 :
Oubli client
07 février 2008 16:36:13 :
corrections
07 février 2008 18:06:18 :
Prise en compte des remarques
09 février 2008 18:24:40 :
Intégration d'une hashtable + adaptée au traitement
10 février 2008 04:38:59 :
Délimitation des zones de traitements spécifiques
12 février 2008 23:12:44 :
Modif des commentaires

Commentaires et avis

signaler à un administrateur
Commentaire de wizad le 07/02/2008 10:06:19

Bon alors en vrac...
Tout d'abord qu'est-ce qu'un système de socket viens faire dans un modèle MVC?
L'organisation de tes sources est assez perturbante. (Par exemple dans le client model aurait du être connex et inversement).
Le convention de nommage ne sont pas vraiment respecté (exemple : en c# on utilise pas de _ au début du nom des variables privés) ce qui rend ton code assez illisible.
Et je viens de voir que le _ en début de variable ne représente même pas toujours des variables privées.

Enfin ta source est peu réutilisable car mal organiser et absolument pas commentée.

En bref je dirais que ça vaut un note entre 2 et 3... je noterais dans quelques jours en fonctione des améliorations que tu aura apportés.

signaler à un administrateur
Commentaire de PROMEUF le 07/02/2008 18:16:41

En accord avec tes remarques développement un peu rapide, ai essayé d'apporter une tentative de normalisation du code et des commentaires
je ne comprends  pas "model aurait du être connex"
Pour l'approche MVC je ne suis pas d'accord avec tes remarques.Cet approche fait que la vue n'effectue aucun traitement ceux ci sont déportés dans le modèle et l'acces aux données dans le contrôleur et la communication se fait via une instance de la classe modele.
Ici la sérialisation permet de transporter sur le serveur cette instance de classe et de communiquer avec le modèle dans le thread de traitement de l'information du serveur qui peut appeler le contrôleur.
Merci pour ton regard sur ce source et tes conseils.
"

signaler à un administrateur
Commentaire de higgens66 le 18/06/2009 11:56:16

Bonjour,
Tout d'abord, je dois te féliciter pour cette source car le code, bien que tenant compte de la remarque de Wizard, soit un peu pauvre en commentaire et en convention, est bien réussi et tourne plutôt pas mal du tout. Il y a plein de petites astuces que je trouve assez sympa dans ton idée.
Par contre, je suis occupé à essayer de le mettre en ½uvre dans une application et tout va presque bien excepté que, aléatoirement, le socket ne veut pas me renvoyer l'info du serveur vers le client. Je vois bien l'info sortir du serveur mais pas rentrer sur le client!!!
En fait, je n'ai pas encore implémenté tes méthodes spécifiques pour la gestion des messages en dehors de la classe de connexion mais je n'arrive pas à appeler les delegates pour les faire fonctionner. A mon avis je dois me tromper quelque part. Bref, puis-je te demander de me donner un petit aperçu de l'implémentation de ton delegate (ATOIDEBOSSER) dans une autre classe.
Merci.
Une fois que j'aurai bien avancé, je mettrai certainement les corrections faites à ta disposition pour que tu puisse y voir les changements. Le code modifié ne sert pas du tout à du chat mais à une gestion de messages spécifiques entre un client et un serveur.

signaler à un administrateur
Commentaire de higgens66 le 18/06/2009 12:41:21 7/10

Je viens d'ajouter une note!

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Comment stopper un thread lorsqu'il est bloqué par une fonction bloquante [ par billou_13 ] En voila une question que je me pose depuis très longtemps !En fait, je lance un serveur TCP/IP qui attend des clients en faisant la fonction Soc Client IRC [Sockets/Threads] [ par SpecialCharacter ] Bonjour, je me suis mis à la programmation d'un petit client IRC Il ressemble en beaucoup de points à tous ceux des débutants je n'en doute pas. Il e Multi threading using TCP and socket [ par gdupasqu ] Bonjour,je suis entrain d'écrire un programme (client et serveur).Le serveur fonctionne comme ceci: 1. Le serveur écoute sur un port fixé. 2. Lorsqu'u Multi Threading en utilisant TCP [ par gdupasqu ] Bonjour,je suis entrain d'écrire un programme (client et serveur).Le serveur fonctionne comme ceci:1. Le serveur écoute sur un port fixé.2. Lorsqu'un Problème de thread, socket et form [ par Florynth ] Bon pas très compliqué,j'ai créé un thread qui écoute un portaprès je pèse sur un bouton qui fait connectédonc il créé un socket le connect au port en Pb d'affichage de fenetre et thread... [ par bigflo ] Salut,Je developpe un client de tchat en c#.Mais j'ai quelque pb d'affichage des fenetres de tchat. Explication:Bon, j'ai une treeview et lorsque je d thread en C# [ par karshnod ] Bonjour, je me permet de poster car je suis sur un probleme que je ne comprend pas J'ai une WinForm, qui detecte la navigation sur Ie. J'ai un thread [c#] Sérialisation en XML [ par oberown ] Pour sérialiser en XML, il fut mettre les attributs des classes en public.Est-il possible de sérialiser en l-aissant les attributs en private ?Est-ce Thread + NetworkStream [ par JuS ] Je vais vous exposer mon problème (c'est un peu long à lire et à comprendre...)Je programme un programme client/serveur.Le client, en C#, communique a Comment ouvrir une socket bluetooth en c# [ par super_toinou ] Bonjour, Je voudrai ouvrir une socket pour transmettre des String en bluetooth vers autre terminal bluetooth(un pocket pc ou smartphone). Je n'arriv


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,718 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.