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)
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 /********** 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 }
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.
Partager