Bonsoir à tous,
je développe en ce moment une application cliente en c# qui communique avec un démon que j'ai crée sur UNIX. Dans mon appli j'ai une instance de l'objet TcpClient qui est chargée d'envoyée et de recevoir les données en provenance ou vers le demon.
Le soucis est que je ne reçoit pas toujours l'ensemble de mes données. Je m'explique : lorsque les réponses du serveur ne sont pas trop longues j'obtient bien toutes les informations. En revanche lorsque les données sont plus volumineuses (environ 30 Ko) je ne reçoit qu'une partie de la réponse et je n'ai le reste que lorsque je place un octet en emission.
Je pense avoir un soucis avec la gestion du buffer mais je ne sais pas comment m'en sortir.
Mon code d'envoi de trames est le suivant:
public string Recoit()
{
string sResultat = "";
byte []Buffer = null;
int NbrElemLus = 0;
NetworkStream Flux = m_ConnectionTcp.GetStream();
StreamReader sr = new StreamReader(Flux);
Buffer = new byte[TAILLEBUFFER];
if(Flux.CanRead)
{
do
{
NbrElemLus = Flux.Read(Buffer,0,TAILLEBUFFER);
sResultat += TabByteVersChaine(Buffer,0,NbrElemLus);
}while(Flux.DataAvailable);
}
else
{
System.Console.Out.WriteLine("Impossible de lire dans le flux : permission refusée");
}
return((String)sResultat.Clone());
}
auriez vous une solution à me proposer. Merci.
:):):):D:D:D:D
:):):):D:D:D:D