begin process at 2012 02 09 00:11:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > BASE POUR SERVEUR/CLIENT TCP/IP AVEC NETWORKSTREAM

BASE POUR SERVEUR/CLIENT TCP/IP AVEC NETWORKSTREAM


 Information sur la source

Note :
8,91 / 10 - par 11 personnes
8,91 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseaux & Internet Source .NET ( DotNet ) Classé sous :client, serveur, networkstream, tcp, ip Niveau :Débutant Date de création :04/02/2005 Date de mise à jour :26/02/2007 14:03:43 Vu / téléchargé :17 324 / 2 544

Auteur : billou_13

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Sert de base à l'implémentation de la gestion  Client/serveur. Développer en mode console. Il permet la connexion de plusieurs client sur le serveur avec la gestion du multithread. Il présente :
- La connexion avec NetworkStream
- Le multi-thread
- Les fonctions delegate
- Les événements
- Les tables "Hashtable"
- La notion d'objet
Il a été développé aussi court que possible et commenté au maximum pour permettre la modification et la mise en place dans n'importe quel projet. Possibilité de quelques bugs, pas vu pour l'instant.
Cependant, il n'inclue pas la destruction d'un client dans la table de Hashage (prochaine mise à jour)


 Conclusion

Développé sous 2 jours, il sera mis à jour dès que possible. Je tiens tout particulièrement à remercier MorpionMx et TheSaid (Admin) pour leur aide, sans qui, je n'aurais pas fait tout ça. Il est donc de mon devoir de transmettre la source sur le site pour permettre à tout le monde de profiter de mon apprentissage sur la gestion Client/Serveur. J'ai essayé d'être le plus clair et simple possible dans mes commentaires qui j'espère ne sont pas faux.
N'hésitez à mettre des commentaires et à gueuler si j'ai mis des choses fausses !!!

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

26 février 2007 14:03:44 :
Correction mot clés

 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) LOGICIEL DE RECHERCHE OU REMPLACEMENT DANS UN RÉPERTOIRE ET ...

 Sources de la même categorie

Source avec Zip Source avec une capture MODIFIER ADRESSE MAC (WINDOWS) par maxou561
Source avec Zip Source avec une capture FTPROG - CLIENT FTP TRÈS BASIQUE par Jukuso
Source avec Zip Source .NET (Dotnet) WIFIKEYVIEWER : LISTE DES PROFILES WIFI AVEC LEURS CLÉS/MOTS... par ShareVB
Source avec Zip Source .NET (Dotnet) TRANSFERT DE FICHIER par VinceMonkeyz
Source avec Zip Source .NET (Dotnet) NET (SCAN D'URL) par VinceMonkeyz

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) MODULE RÉSEAU AVANCÉ : SOCKET TCP. par djine
Source avec Zip Source .NET (Dotnet) NETACCESS 2.0 RC2 : LIBRAIRIE POUR APPLICATION CLIENTS/SERVE... par wizad
Source avec Zip Source avec une capture Source .NET (Dotnet) CLASS - TCP CLIENT / SERVEUR par lumesh
Source avec Zip Source .NET (Dotnet) CHAT EN TCP/IP (CLIENT SERVEUR) par telynor
Source avec Zip Source .NET (Dotnet) CLASSE POUR SERVEUR TCP/IP par Crazyht

Commentaires et avis

Commentaire de boutnell le 08/02/2005 20:23:19

bon source:) c ce que je cherchais.. et en plus c bien commenter !
Merci

Commentaire de MATHIS49 le 02/02/2006 00:19:53

Bravo, ca marche et c'est tres bien commenté ! 9/10

Commentaire de walteau le 05/11/2006 01:11:29

Source très bien commentée c vrai! merci ;)

Commentaire de damned3 le 14/01/2008 05:56:15 8/10

merci super utile pour comprendre la base

Commentaire de xankow le 19/06/2008 08:35:20

Merci pour ce code bien commenter. Mais malgres ca il me reste un petit probleme.
Dans mon application, lorsqu'un client se deconnecte, puis se reconnecte. J'ai besoin de savoir que c'est le meme client (via son IP). Or la a la reconnection il va le nommer evec un nouvel increment.
Je ne trouve pas de solution a mon probleme. Si quelqu'un peu m'aider ce serai super.

Commentaire de billou_13 le 19/06/2008 09:14:37

Bonjour,

Tout d'abord, merci pour le (et j'en profite pour dire merci à tous les commentaires) commentaire.

Pour la reconnection d'un client, tu peux très bien conserver le lien adresse IP - Login en utilisant la classe Dictionnary<TKey, TValue>. Ainsi, tu pourras lui ré-attribuer le login à sa reconnection.
Cependant, il y a plusieurs hics (ce qui explique pourquoi la plupart des gens ne font pas comme ça ^^):
  1) Tu pouvais avant connecter un même poste plusieurs fois sur le chat sans aucun souci. Aujourd'hui, ils auront le même login: pas cool !
  2) Le dictionnary grandit à l'infini (il faut donc un time-out) pour le purger de temps en temps. Et là, ca complique les choses.
  3) Quand tu redémarre ton serveur, tu perds toutes les infos.

C'est pour cela que :
  - Soit tu demandes le login souhaité à la connection (et tu vérifies qu'il n'existe pas déjà).
  - Soit tu créé un système de "login/mot de passe" que tu garderas côté serveur (dans une base de données, un fichier, ...).

Bonne journée,


Billou_13

Commentaire de xankow le 19/06/2008 10:59:41 9/10

Merci de ton aide.
Mais je pense que j'aurai du expliquer mon application pour commencer.

Il s'agit d'un PC qui fait office de serveur (qui ne doit jamais se deconnecter en theorie :)
Et d'une dizaine d'automate sur le meme reseau qui ont une adresse IP chacun et qui se deconnecte reconnecte tres souvent (du a l'electronique).

Le serveur doit pouvoir lire tous les message des clients, et pouvoir envoyer un message de correction a un client en particulier, celui qui n'est pas en phase par exemple.

C'est pour cela que je pensais donner l'ip de client comme numero_client. Plutot qu'un increment.

Et je ne sais pas comment obtenir l'Adresse du client avant le creation du nouveau client.
exemple:
Client Client_Temp = new Client(IP_Client,NetworkStream);

Je sais pas si tu vois bien ou est mon probleme.
Mais je debute en c#, et en reseau, alors meme pour moi c'est encore confus.

Commentaire de billou_13 le 19/06/2008 11:33:29

Dans ce cas, tu peux faire un fichier d'association "Adresse IP"-"Serveur". Un fichier texte peut faire l'affaire (ou xml à la limite: en utilisant les fichiers Settings, ca peut être classe ^^). Ainsi, ton appli serveur pourra identifier les connections.

Pour connaitre l'adresse IP de la personne qui se connecte, j'ai trop eu le temps de voir mais je pense que j'ai une piste:
- Après la ligne:
TCP_Client = TCP_Serveur.AcceptTcpClient();
- Ajoute la ligne:
IPAddress address = ((IPEndPoint)TCP_Client.Client.RemoteEndPoint).Address;
Tu auras alors accès à l'adresse IP dans l'objet "address".

Voila,

Bonne journée,

Billou

Commentaire de xankow le 19/06/2008 12:00:44

'System.Net.Sockets.TcpClient.Client' est inaccessible en raison de son niveau de protection

Voila le message d'erreur que j'obtiens avec:

TCP_Client = TCP_Serveur.AcceptTcpClient();
IPAddress address = ((IPEndPoint)TCP_Client.Client.RemoteEndPoint).Address;

Si tu peux encore m'aider, ca serai vraiment super.

MERCI

Commentaire de billou_13 le 19/06/2008 12:28:28

Je comprends pas, chez moi, ca marche très bien.
Je ne vois pas ce qui clôche. Désolé

Billou_13

Commentaire de xankow le 19/06/2008 12:30:25

ok

Merci pour tout.

Commentaire de xankow le 19/06/2008 14:18:53

Je suis sous le framework 1.1,
et la msdn me dis que Client est "Propriétés protégées".

est ce que mon erreur peut venir de la?


Commentaire de billou_13 le 19/06/2008 15:46:13

Il semblerait que ce soit la raison : http://msdn.microsoft.com/fr-fr/library/system.net.ipendpoint(VS.80).aspx (This page is specific to
Microsoft Visual Studio 2005/.NET Framework 2.0)

Pour le framework 1.1, je ne vois pas et je n'ai pas Visual Studio 2003 sur mon poste.

Billou_13

Commentaire de klapaudius le 04/10/2009 02:34:41 10/10

Voila exactement ce que je cherchais. Je suis débutant en C# et tous ces commentaires sont vraiment d'une grande aide. Merci beaucoup 10/10

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

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 Ca rame sévère ! [ par billou_13 ] Voila, g fait un programme serveur en utilisant les NetworkStream et je c pas pourquoi, d&#232;s qu'il y a 3 clients minimum, le serveur se met a rame [tcp]Gestion de la deconnexion [ par Sobieski ] Voila, j'ai un serveur TCP auquel vient se connecter un client (marrant non ?)J'aimerais quand je ferme le client que le serveur se remette en &#233;c Adresse IP d'un TcpClient [ par Thufenn ] Bonjour tout le monde, Voilà mon pb. j'ai un systeme client-serveur dans lequel mes clients envoie des ordres d'executions (avec une connexion TCP), Récupérer l'adresse IP [ par thebigboss ] Bonjour,je voudrais savoir comment faire pour r&#233;cup&#233;rer son adresse IP et celle d'un message post&#233; sur un port.Je m'explique, je suis a CLient/serveur séparés par un proxy [ par thebigboss ] Salut,je suis toujours en tran de me battre avec mon MSN like. J'ai un serveur et un client. Le client se connecte au serveur via un port et l'IP du s client / serveur = > avec adresse ip public [ par 10demon10 ] Bonjour à tousVoila j'ai modifié une source de client / serveur trouver sur codes sources et tous fonctionne correctement (ajout de plusieurs clients optenir l'adresse publique de sa machine c# [ par 10demon10 ] Bonjour à tous Voila j'ai une nouvelle problématique sur mes petites socket, j'ai no-ip de configurer comme il faut ac mon modem-routeur (les ports et TCP Listener et les threads [ par mimosa803 ] Bonjour,Je suis entrain de développer une application Client/Serveur en utilisant TCPClient et TCPListener. Mon problème est comment je peux créer un problème connexions externe client/serveur [ par azuss14 ] J'explique mon problème, je souhaite créer une connexion client/serveur, ceci fonctionne très bien en local, les applications échangeant un flux grâce


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,014 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales