Bonjour,

Je suis entrain de développer un simple programme de chat en utilisant les sockets en C#. En fait il y a deux programmes, Serveur et Client

Extrait du Serveur (Application Console) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
		static void Main(string[] args)
		{
 
			Socket socketServeur;
			byte[] buffer = new byte[1024];
 
			socketServeur = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
			socketServeur.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"),5000));
			socketServeur.Listen(10);
 
            Console.WriteLine("Le serveur a demarré");
			while(true)
			{
 
				Socket socketClient = socketServeur.Accept();
				int count = socketClient.Receive(buffer,0,1024,SocketFlags.None);
				string s = Encoding.ASCII.GetString(buffer,0,count);
				System.Console.WriteLine("\nle client a dit : "+s);
				socketClient.Close();
			}
			socketServeur.Close();
 
		}
Les 2 fonctions les plus importantes du code du client :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
                         Socket socketClient;
		int count;
		public void connexion()
		{
			try
			{
				socketClient = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
				socketClient.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.ReceiveTimeout,5000);
				socketClient.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"),5000));
			}
			catch(Exception e)
			{
				textBox2.AppendText("\r\n"+e.Message);
			}
		}
 
		public void envoi(string message)
		{
			try
			{
				if(socketClient.Connected)
				{
					count = socketClient.Send(Encoding.ASCII.GetBytes(message),0,message.Length,SocketFlags.None);
					textBox1.AppendText("\r\nmessage envoye  ");  
				}
				else textBox1.Text = "vous n etes plus connectes";
 
			}
			catch(Exception e)
			{
				textBox2.Text = e.Message;
			}
		}
Le probléme c'est que le client ne peut envoyer qu'un seul message au serveur.
et merci bcp