[C#] Łapanie konkretnego pakietu z TCP


(Infernowhite2) #1

Cześć,

mam pewien problem ponieważ piszę program który ma odbierać konkretny pakiet.

Odbieram go sobie przez TCPClient:

public string recieve()

        {        

        result = this.streamr.ReadLine();

         return result;

        }

Tym ściągam pakiet. A pakiet wygląda tak:

0|D|100|12320| inne nieważne części pakietu

A pakiety idą na bieżąco(trochę innego syfu + pakiet wyżej + syf + pakiet wyżej) I za każdym razem pakiet wygląda inaczej (pozostaje ten początek 0|D|) Napisałem taki kod

public void pos()

       {


           string pakiet = recieve();

           string pakiet_lat = pakiet.IndexOf("0|D|").ToString();

           if (!(pakiet_lat == "-1"))

           {

               lstLog.Items.Add(pakiet);

           }


       }

Jednak to nie działa, bo zwraca pakiet który nie zaczyna się na 0|D|

Jakieś pomysły?

Z góry dzięki.


(Grzelix) #2
if(pakiet.StartsWith("0|D|"))

{

 lstLog.Items.Add(pakiet);

}

można też tak zostając przy metodzie indexOf

if(pakiet.IndexOf("0|D|") == 0)

{

 lstLog.Items.Add(pakiet);

}

tak swoją drogą

string pakiet_lat = pakiet.IndexOf("0|D|").ToString();

           if (!(pakiet_lat == "-1"))

wiesz ile w tych 2 linjkach można zrobić poprawek poprawiających wydajność i wygląd kodu?