Brak możliwości wysłania ponownie komunikatu w TCP

0

Witam!
czy ktoś może mi wyjaśnić, dlaczego nie mogę wysłać drugi raz komunikatu do klienta?

Kod jaki posiadam:

 
            TcpClient tcpClient = temp.TcpClient;

            NetworkStream clientStream = tcpClient.GetStream();
            ASCIIEncoding encoder = new ASCIIEncoding();
            byte[] buffer = encoder.GetBytes("Otrzymano wiadomość");

            clientStream.Write(buffer, 0, buffer.Length);
            clientStream.Flush();
           
            Thread.Sleep(1000); 

            //NetworkStream clientStream1 = tcpClient.GetStream();
            byte[] buffer1 = encoder.GetBytes("Wiadmosc wzrotna " );
            
            //clientStream.
            clientStream.Write(buffer1, 0, buffer1.Length);
            clientStream.Flush();

Z góry dzięki za pomoc

0

Fajnie... a co oznacza "nie moge" ? Sumienie Ci nie pozwala ? A może jakiś błąd ? Czy może tylko nie dochodzi ?

Zakładam, że to trzecie i że masz zepsute odbieranie w kliencie ;p

0

Tak, nie dochodziły pakiety:) Dzięki za olśnienie. Mam po prostu skopanego klienta.

A to może jeszcze przy okazji...
W jaki sposób "wyłapać" kiedy skończyły przychodzić dane od klienta w protokole TCP?
Używam teraz "stadartowego" odczytu:

 byte[] message = new byte[4096];
            int bytesRead;
           
            
            while (true)
            {
                bytesRead = 0;

                try
                {
                    bytesRead = clientStream.Read(message, 0, 4096);

                }
                catch
                {
                    break;
                }

                if (bytesRead == 0)
                {
                    break;
                }
              
                string wiadomosc = encoder.GetString(message, 0, bytesRead);
               Console.WriteLine(wiadomosc);
}

Ale wyświetla mi z podzialem na dane po 4096 bajtów.
Nie potrzebuję tutaj rozwiązania typu: zwiększ sobie do 10000 bajtów, tylko czegoś "dynamicznego", co kończylo by odczyt po np komendzie "koniec danych"

1 użytkowników online, w tym zalogowanych: 0, gości: 1