Bonjour,

J'ai un soucis avec mon code, je suis en train de faire un serveur multiclient en c# et je n'arrive pas a comprendre pourquoi le thread d'écoute du flux me sort que des '0'.

Voici le bout de code qui m'embête :
Le code suivante se trouve dans le classe CThreadHandle
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
 
private void Execute ()
{
	while (true) //Thread.CurrentThread.IsAlive
	{
		TransmittionStat = E_STREAM.E_STREAM_RECEIVE;
		if (Stream.Read (RxBuffer, 0, RxLenght) == RxLenght)
		{
			MessageBox.Show (RxBuffer[0].ToString());
			ClientData.PreparetoUse (RxBuffer);
			TransmittionStat = E_STREAM.E_STREAM_READY_TO_FOLLOW;
		}
		else
		{	TransmittionStat = E_STREAM.E_STREAM_DISCONNECTED;	}
		Thread.Sleep (1);		//	wait in ms
	}
}
Stream est un attribut de ma classe et cette méthode est exécutée dans un thread.

Pour plus de compréhension, voici le code de ma classe CServer qui accepte et démarre le thread CThreadHandle.Execute() :
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
 
private void WaitforConnections ()
{
	int connections = 0;
	CThreadsHandle tempHandler;
	CNetData data;
	while (Thread.CurrentThread.IsAlive)
	{
		client = Listener.AcceptTcpClient();
		tempHandler = new CThreadsHandle (client.GetStream());
		ThreadHandler.Add (tempHandler);
		data = new CNetData ();
		ClientData.Add (data);
		ThreadHandler[connections].Start ();
		if (connections+1 < MaxStream)
		{	connections++;	}
		else
		{	StopListening ();	}
		NbrofClient = connections;
		Thread.Sleep (100);		//	in ms
	}
}
Je voudrais savoir comment je dois faire pour lire les données du flux correctement. J'ai déjà passé du temps à diagnostiqué mon p'blème et je crois qu'il doit se présenter dans le codage de mon thread car lire les données du flux a l'extérieur du thread, p-e dans la méthode d'initialisation, fonctionne correctement.

Merci pour votre aide et ne m'en voulez pas s'il vous plais, je ne connais pas très bien voir pas du tout les threads...

A bientôt !