salve ragazzi ho un problema sull'invio di dati ad un socket.minimizzo il codice per farvi capire:
codice:
while()
{
sendmess(null,tutti,"ciao")
while()
{
sendmess(null,nomepersona,"bello")
}
}
praticamente finche sono all'interno della while "bello" gli invii avvengono regolari e separati, mentre quando passo dalla while ciao il valore viene ricevuto dal client concatenato.in pratica riceve "ciaobello" e non prima "ciao" e successivamente "bello".questo non avviene sempre ma quasi sempre.è come se nel passaggio dal send ciao a quello bello i dati vengano scritti entambi sul buffer e letti una sola volta dal client...la funzione di invio è la classica con apertura dello stream e invio con buffer...
codice:
public void sendmess(TcpClient client,string name,string test)
{
TcpClient tcpClient= new TcpClient();
if (client != null) tcpClient = (TcpClient)client;
if (name != null) tcpClient = (TcpClient)clientsList[name];
NetworkStream clientStream = tcpClient.GetStream();
ASCIIEncoding encoder = new ASCIIEncoding();
byte[] buffer = encoder.GetBytes(test);
clientStream.Write(buffer, 0, buffer.Length);
clientStream.Flush();
}