begin process at 2012 02 11 06:03:18
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > CONNEXION DE TYPE TCP/IP

CONNEXION DE TYPE TCP/IP


 Information sur la source

Note :
7,63 / 10 - par 8 personnes
7,63 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseaux & Internet Source .NET ( DotNet ) Classé sous :connection, connexion, tcp, ip Niveau :Initié Date de création :18/06/2002 Date de mise à jour :23/12/2002 15:51:33 Vu :23 254

Auteur : pornik

Ecrire un message privé
Site perso
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Ca peut vous être utile, surtout pour comprendre le fonctionnement des sockets, et plus particulièrement de la classe TcpClient.  

Source

  • namespace TcpConnection
  • {
  • using System;
  • using System.Net;
  • using System.Net.Sockets;
  • using System.Text;
  • using System.IO;
  • public class Connection
  • {
  • public enum State
  • {
  • Disconnected,
  • Connected
  • }
  • public delegate void DelegToWrite(string Text);
  • private State _StateConn;
  • private DelegToWrite _OnTextToWrite;
  • private TcpClient _TcpConnect;
  • private NetworkStream _Ns;
  • private string _HostName;
  • private IPAddress _IP;
  • private int _Port;
  • private string _Sent;
  • private string _Received;
  • private byte[] _bReceived;
  • private int _RecSize;
  • public State StateConn
  • {
  • get{return _StateConn;}
  • }
  • public DelegToWrite OnTextToWrite
  • {
  • get{return _OnTextToWrite;}
  • set{_OnTextToWrite = value;}
  • }
  • public string HostName
  • {
  • get{return _HostName;}
  • }
  • public IPAddress IP
  • {
  • get{return _IP;}
  • }
  • public int Port
  • {
  • get{return _Port;}
  • }
  • public string Sent
  • {
  • get{return _Sent;}
  • }
  • public string Received
  • {
  • get{return _Received;}
  • }
  • public string AsyncReceived
  • {
  • get{return Encoding.ASCII.GetString(_bReceived, 0, _RecSize);}
  • }
  • public Connection(string HostName, int Port)
  • {
  • _StateConn = State.Disconnected;
  • _HostName = HostName;
  • _Port = Port;
  • _bReceived = new byte[1024];
  • IPHostEntry HostInfo = Dns.Resolve(HostName);
  • _IP = HostInfo.AddressList[0];
  • }
  • public Connection(IPAddress IP, int Port)
  • {
  • _StateConn = State.Disconnected;
  • _HostName = String.Empty;
  • _IP = IP;
  • _Port = Port;
  • _bReceived = new byte[1024];
  • }
  • public void Connect()
  • {
  • if(_StateConn == State.Connected)
  • return;
  • try
  • {
  • _TcpConnect = new TcpClient();
  • _TcpConnect.Connect(new IPEndPoint(_IP, _Port));
  • _Ns = _TcpConnect.GetStream();
  • _StateConn = State.Connected;
  • }
  • catch(Exception e)
  • {
  • _StateConn = State.Disconnected;
  • throw e;
  • }
  • }
  • public void Disconnect()
  • {
  • try
  • {
  • _Ns.Close();
  • _TcpConnect.Close();
  • }
  • catch
  • {
  • }
  • finally
  • {
  • _StateConn = State.Disconnected;
  • }
  • }
  • public void SendToServer(string Text)
  • {
  • if(_StateConn == State.Disconnected)
  • return;
  • byte[] bText = Encoding.ASCII.GetBytes(Text.ToCharArray());
  • _Sent = Text;
  • try
  • {
  • _Ns.Write(bText, 0, bText.Length);
  • }
  • catch
  • {
  • try
  • {
  • _Ns.Write(bText, 0, bText.Length);
  • }
  • catch(Exception e)
  • {
  • _StateConn = State.Disconnected;
  • throw e;
  • }
  • }
  • }
  • public string GetFromServer()
  • {
  • if(_StateConn == State.Disconnected)
  • return String.Empty;
  • StreamReader Sr = null;
  • _Received = String.Empty;
  • try
  • {
  • Sr = new StreamReader(_Ns);
  • while(Sr.Peek() > -1)
  • {
  • _Received += Sr.ReadLine() + "\r\n";
  • }
  • return _Received;
  • }
  • catch(Exception e)
  • {
  • _Received = String.Empty;
  • throw e;
  • }
  • }
  • public void GetFromServerAsync()
  • {
  • AsyncCallback Acb = new AsyncCallback(OnReceived);
  • _Ns.BeginRead(_bReceived, 0, _bReceived.Length, Acb, _TcpConnect);
  • }
  • private void OnReceived(IAsyncResult Ar)
  • {
  • TcpClient Client = (TcpClient)Ar.AsyncState;
  • NetworkStream Ns = Client.GetStream();
  • int Size = Ns.EndRead(Ar);
  • if(Size>0)
  • {
  • _RecSize = Size;
  • if(_OnTextToWrite != null)
  • _OnTextToWrite(AsyncReceived);
  • GetFromServerAsync();
  • }
  • else
  • {
  • _StateConn = State.Disconnected;
  • }
  • }
  • public override string ToString()
  • {
  • return _IP.ToString();
  • }
  • }
  • }
namespace TcpConnection
{
	using System;
	using System.Net;
	using System.Net.Sockets;
	using System.Text;
	using System.IO;

	public class Connection
	{
		public enum State
		{
			Disconnected,
			Connected
		}
		public delegate void DelegToWrite(string Text);

		private State _StateConn;
		private DelegToWrite _OnTextToWrite; 
		private TcpClient _TcpConnect;
		private NetworkStream _Ns;
		private string _HostName;
		private IPAddress _IP;
		private int _Port;
		private string _Sent;
		private string _Received;
		private byte[] _bReceived;
		private int _RecSize;

		public State StateConn
		{
			get{return _StateConn;}
		}

		public DelegToWrite OnTextToWrite
		{
			get{return _OnTextToWrite;}
			set{_OnTextToWrite = value;}
		}

		public string HostName
		{
			get{return _HostName;}
		}

		public IPAddress IP
		{
			get{return _IP;}
		}

		public int Port
		{
			get{return _Port;}
		}

		public string Sent
		{
			get{return _Sent;}
		}

		public string Received
		{
			get{return _Received;}
		}

		public string AsyncReceived
		{
			get{return Encoding.ASCII.GetString(_bReceived, 0, _RecSize);}
		}

		public Connection(string HostName, int Port)
		{
			_StateConn = State.Disconnected;
			_HostName = HostName;
			_Port = Port;
			_bReceived = new byte[1024];

			IPHostEntry HostInfo = Dns.Resolve(HostName);
			_IP = HostInfo.AddressList[0];
		}

		public Connection(IPAddress IP, int Port)
		{
			_StateConn = State.Disconnected;
			_HostName = String.Empty;
			_IP = IP;
			_Port = Port;
			_bReceived = new byte[1024];
		}

		public void Connect()
		{
			if(_StateConn == State.Connected)
				return;

			try
			{
				_TcpConnect = new TcpClient();
				_TcpConnect.Connect(new IPEndPoint(_IP, _Port));
				_Ns = _TcpConnect.GetStream();
				_StateConn = State.Connected;
			}
			catch(Exception e)
			{
				_StateConn = State.Disconnected;
				throw e;
			}
		}

		public void Disconnect()
		{
			try
			{
				_Ns.Close();
				_TcpConnect.Close();
			}
			catch
			{
			}
			finally
			{
				_StateConn = State.Disconnected;
			}
		}

		public void SendToServer(string Text)
		{
			if(_StateConn == State.Disconnected)
				return;

			byte[] bText = Encoding.ASCII.GetBytes(Text.ToCharArray());
			_Sent = Text;

			try
			{
				_Ns.Write(bText, 0, bText.Length);
			}
			catch
			{
				try
				{
					_Ns.Write(bText, 0, bText.Length);
				}
				catch(Exception e)
				{
					_StateConn = State.Disconnected;
					throw e;
				}
			}
		}

		public string GetFromServer()
		{
			if(_StateConn == State.Disconnected)
				return String.Empty;

			StreamReader Sr = null;
			_Received = String.Empty;

			try
			{
				Sr = new StreamReader(_Ns);

				while(Sr.Peek() > -1)
				{
					_Received += Sr.ReadLine() + "\r\n";
				}

				return _Received;
			}
			catch(Exception e)
			{
				_Received = String.Empty;
				throw e;
			}
		}

		public void GetFromServerAsync()
		{
			AsyncCallback Acb = new AsyncCallback(OnReceived);
			_Ns.BeginRead(_bReceived, 0, _bReceived.Length, Acb, _TcpConnect);
		}

		private void OnReceived(IAsyncResult Ar)
		{
			TcpClient Client = (TcpClient)Ar.AsyncState;
			NetworkStream Ns = Client.GetStream();

			int Size = Ns.EndRead(Ar);

			if(Size>0)
			{
				_RecSize = Size;

				if(_OnTextToWrite != null)
					_OnTextToWrite(AsyncReceived);
			
				GetFromServerAsync();
			}
			else
			{
				_StateConn = State.Disconnected;
			}
		}

		public override string ToString()
		{
			return _IP.ToString();
		}
	}
} 



 Sources du même auteur

Source .NET (Dotnet) AFFICHER ET CACHER UNE FENÊTRE
Source .NET (Dotnet) THREAD
Source .NET (Dotnet) TUTORIAL C#
Source .NET (Dotnet) REQUÊTE HTTP

 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 avec une capture Source .NET (Dotnet) BASE POUR SERVEUR/CLIENT TCP/IP AVEC NETWORKSTREAM par billou_13
Source avec Zip Source .NET (Dotnet) CLASSE DE CONNEXION ORACLE par JuS
Source avec Zip Source .NET (Dotnet) CONNEXION BDD ACCESS EN MODE DÉCONNECTÉ par mohican13
Source avec Zip Source .NET (Dotnet) CLASSE POUR SERVEUR TCP/IP par Crazyht
Source avec Zip Source avec une capture Source .NET (Dotnet) CLASSE POUR CLIENT TCP/IP V2 par Crazyht

Commentaires et avis

Commentaire de taye78 le 02/11/2002 14:17:27

bravo :)

Commentaire de taye78 le 02/11/2002 14:21:36

faut que j'arrête de te féliciter (tutorial) :) quoi que ca ne me gêne pas mais ce n'est pas dans mon habitude lol

--wg

Commentaire de maitrecesar le 26/01/2003 12:14:10

salut
je sais pas tres bien si c'est du c++ ou de java?
merci

Commentaire de gg00xiv le 02/04/2003 23:57:54

c du C# :)

Commentaire de Mattdef le 18/12/2003 22:23:57

dixit "ça peut etre utile pour comprendre les sockets"...... sans commentaire ?

ça ne mérite pas 10

Commentaire de JuS le 04/05/2004 11:10:00

Même commentaire que Mattdef ...
Dommage ...

Commentaire de phoennix le 09/06/2004 15:40:03

Idem que les 2 derniers commentaires :
Pour mieux comprendre, faudrait des commentaires pour expliquer ce qui est fait.

Commentaire de abdoulax le 14/12/2004 19:23:12

Lol bande de jalou !!

Haha na je plaisante ms jusqu'à maintenant je cherché exactement une source de ce type qui utilise juste les sockets sans rien en plus. Juste pour avoir un exemple. Je pense poa que la meilleur des solutions est de lire des commentaires pour apprendre. Perso je pense kil fo essayé de comprendre le code et de le modifier et la tu apprendra qlqchose.

Sinon si tu ve un truc commenté, tu va sur un site de tuto ou dans la section tutorial.

C vrai kon ma tjs di comment ton code ... Ms en fait c vous, vous souhaitez kon vous mache le travaille !!!

Have fun et bon boulo mec

Commentaire de fayen le 29/12/2004 11:41:06

Pour ceux qui débute dans la communication TCP/IP en C# j'ai trouvé un bon ptit tutoriel :

http://www.supinfo-projects.com/fr/2004/socket%5Fdotnet/1/

Commentaire de kikodos23 le 07/08/2007 18:57:11

il est insufisant de comprendre sans commentaire ;pense a ma remarque :-)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Adresse IP Internet [ par syl2 ] Bonjour,Existe-t'il une méthode pour retrouner l'adresse IP actuelle de ma connexion Internet ?Les seules méthodes que j'ai pu trouver sont liées au c Connection sécurisé [ par tobleronne ] Bonjour à tous,J'essaye tout betement de faire un accés à la base mais on me dit : "Échec de la connexion de l'utilisateur 'sa'. Raison : Non associé Etablir une connexion Tcp/Client [ par Fildomen ] SalutPouvez-vous me donner un example d'une connexion tcp/client avec le c# 2005???c très compliqué que le c# 2003.merci TCP\IP [ par RM50Man ] J'envoie un message d'une application Windows a une application consolevia TCP mais je ne comprend pas que le message ne s affiche su la console& TCP/IP [ par RM50Man ] je fais une application client\serveur pour echanger des messages et des fichierscomme msn par ex!!!j'aimerai s'il faut nécessairement une connec fermer une connexion odbc [ par engelho ] Salut tout le monde...J'utilise un odbcConnection ainsi que :   - un odbcCommand pour une première requete   - un o echec de connexion a la base de donnee [ par gazalii ]     bonsoir a vous tous svp j ai un porbleme avec ma connexion vers ma base de donnee sqlserver en fait j ai creee une base de donnee p connection à myql esyphp en C# [ par patou1007 ] Bonjour,J'ai installé easy php et j'ai créer une base de donées mysql avc phpadmin.Je travaille avec visual studio 2005 et je souhaiter Connection a une base de données [ par DigigtalDJ ] Salut tous le monde ! Voilou je débute en C# et SQL server (j'utilise express edition) et je doit creer une application web avec laquelle je doit requ Problème de connexion Acces97 [ par cybernul ] Bonjour, Après avoir regarder sur une centaine de forum, je m'en remet à vous. J'ai développé une application web qui va recherché des informations


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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,685 sec (4)

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