Bonsoir,
je viens ici pour vous demander votre aide.
Explications :
J'ai créé une dll en C# contenant plusieurs classes (Réseaux(TCP & UDP), WebClient (Download & Upload), etc...) qui à la base serait utilisable par plusieurs programmes, selon ses besoins.
Par exemple, j'ai envie de faire une sorte de messagerie instantanée en UDP, alors je créé mon projet, j'importe ma dll (via using) et j'appelle les fonctions de la dll dont j'ai besoin. Pour UDP par exemple, je fais (pour le côté serveur)
et à partir de là, la fonction "Init" de la classe "UDPServer" située dans ma dll se charge de la création du serveur UDP avec les informations passées en paramètre depuis ma toute nouvelle application.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 string IPaddr = Console.ReadLine(); string Port = Console.ReadLine(); UDPServer.Init(IPaddr, Convert.ToInt32(Port));
Mon problème n'est pas lors de la création du socket (j'ai une classe Log qui me log tout ce qui se passe, je peux donc voir où il y a un problème, si problème il y a).
Mon problème, est un problème de récupération des messages reçus pour cette classe en particulier, donc de retour de variable pour l'ensemble de la dll.
Je m'explique : Dans la classe "UDPServer", j'ai une fonction "Receive" qui va convertir les messages reçus de bytes en string et ensuite me logguer le message reçu. Seulement, si je souhaite créer une application, qui a besoin de voir les messages (imaginons juste pour les afficher à la manière d'un Console.WriteLine();, ou bien pour traiter les messages reçus), et bien c'est tout bonnement impossible (du moins, je n'ai pas réussi).
La seule manière que j'ai trouvé, est qu'à chaque fois que je reçois un message, je stock ce message dans un tableau (issu d'une autre fonction) et depuis mon nouveau programme, j'appelle la fonction contenant le tableau qui me renvoie la première case du tableau (donc le dernier message reçu) et ensuite je peux l'afficher.
Cependant, j'utilise un while et c'est assez gênant et je me demandais si il était possible de récupérer la valeur du message (directement transformée de bytes en string) au moment où le message est reçu sans se casser la tête à stocker le message dans un tableau et lire la première case du tableau via un
En espérant avoir été clair, si vous avez des questions n'hésitez pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 while(tableau[0] != ""){ Console.WriteLine(tableau[0]); }
Merci d'avance
Partager