Bonjour,

J'utilise les sockets, en mode connecté (TCP). J'ai un serveur et plusieurs logiciel clients.

Je voudrait échanger les infos entre serveur et clients via des trames de type socket.

Voici ma méthode d'envoi : (client)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
/********** ENVOI D'UN MESSAGE *******************************************************************/
 
        public void SendMessage(string prmMessage) {
            byte[] buffer;  //buffer pour envoi et reception de trame
            buffer = System.Text.Encoding.ASCII.GetBytes(prmMessage);
 
            mySocket.Send(buffer, 0, buffer.Length, SocketFlags.None);  //envoi de la trame
        }
Voici ma méthode de reception : (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
 
/********** RECEPT D'UN MESSAGE *******************************************************************/
        public void ReceiveMessage(string prmMessage) {
            byte[] buffer = new byte[1024];  //buffer pour envoir recept trame
            System.Text.StringBuilder test = new StringBuilder();
            string aaa = "aaa";
            int count;
            try {
                count = serverSocket.Receive(buffer, 0, 1024, SocketFlags.None);  //reception de la trame
                Console.WriteLine("count : " + count);
                //aaa = test.Append(System.Text.Encoding.ASCII.GetString(buffer, 0, count)).ToString();  //transtypage en String
                Console.WriteLine("\n\n\n\n\n\n Message :  " + aaa);
            } catch (SocketException e) {
                Console.WriteLine("\n**********************ERROR**********************\n" + e.StackTrace + "\n\n" + e.Message);
            }
 
 
 
 
        }

Lorsque j'execute mon server est client, j'ai une exception qui se génére comme quoi ma socket n'existe plus.


Voici l'exception génrée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
**********************ERROR**********************
   à System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size,
SocketFlags socketFlags)
   à pjtDaddaServer.ClassServer.SendMessage(String prmMessage) dans C:\Users\gai
lup\Documents\Visual Studio 2005\Projects\pjtDaddaServer\pjtDaddaServer\ClassSer
ver.cs:ligne 85
 
Une requête d'envoi ou de réception de données n'a pas été autorisée car le sock
et n'est pas connecté et (lors de l'envoi sur un socket datagramme en utilisant
un appel sendto) aucune adresse n'a été fournie

Je ne vois pas trop d'où peux venir cette exception. Avez-vous des idées ?


Cordialement,
FONTAINE Guillaume.