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) :
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 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(); }
Le probléme c'est que le client ne peut envoyer qu'un seul message au serveur.
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; } }
et merci bcp
Partager