Bonjour à tous dans le cadre d'un projet que je développe actuellement, j'aimerai pouvoir récupérer l'état d'une écoute serveur (via sa propriété protégée "Active") mais comme d'habitude je bloque sur les différentes manipulations des propriétés.

Voici ce que j'ai déjà codé et qui fonctionne quand tout va bien. Je cherche donc à savoir comment coder cette propriété dans mon code afin d'éviter que mon programme se bloque lorsque si je redémarre mon site web (et dans le cas ou j'ai déjà une écoute serveur qui reste en mémoire ........)

Je sais que cette propriété protégée s'écrit : protected bool Active { get; } mais je sais pas comment l'utiliser !!!!

COTE GESTION
public class Gestion
{
//code ...............


public static Satis.Gestion GetInstance()
{
if (null == s_gestion)
{
// Tester le chargement d'une sauvegarde
Chargement();
if (null == s_gestion)
{
s_gestion = new Gestion();

}
//Lancement du Thread pour la recherche des postes présents
Thread t = new Thread(new ThreadStart(MethodeRecherchePostesPresents));
t.Start();
}
return s_gestion;
}

//code ...............


// Thread de recherche des postes connectés
public static void MethodeRecherchePostesPresents()
{
while (true)
{
PosteReseau.RechercherPosteEnLigne();
Thread.Sleep(1000);
}
}


COTE RESEAU
public abstract class PosteReseau : ClasseBase
{
//code ...............


static TcpListener s_EcouteParServeur = null; // Coté serveur de l'écoute TCP du poste géré (donc distant)

//code ...............

public static void RechercherPosteEnLigne()
{
if (null == s_EcouteParServeur)
{
s_EcouteParServeur = new TcpListener(GetIpServeur(), PortEcoute);
s_EcouteParServeur.Start(); //le programme s'arrête ici dans le cas ou une écoute serveur est déjà en mémoire si on relance celui-ci après un plantage ou autre
}

TcpClient c = s_EcouteParServeur.AcceptTcpClient(); // récupération d'un client de l'écoute

//Recherche du poste réseau concerné
string ad = c.Client.RemoteEndPoint.ToString();
ad = ad.Remove(ad.IndexOf(":"));

bool trouve = false;
List<PosteGere> lesPostes = Gestion.GetInstance().GetListePostesGeres();
foreach (PosteGere pg in lesPostes)
{
if (pg.GetAdresseActeurReseau().ToString() == ad)
{
// On a trouvé, on tire le fil réseau
pg.AffecterParametresEcoute(c);
trouve = true;
break;
}
}
if (!trouve)
{
// On ferme la connection qui n'a pas abouti à un poste connu
c.Close();
}
}

Merci de votre aide