asynchroniczny socket

0

Witam ostatnio zainteresowałem się socketami asynchronicznymi.

moje pytanie dotyczy odbierania danych

private static void Recive(Socket socket)
        {
            StateObject obj = new StateObject();
            obj.workSocket =socket;

            socket.BeginReceive(obj.buffer, 0, StateObject.BufferSize, SocketFlags.None, new AsyncCallback(ReciveCallBack), obj);
        }

        private static void ReciveCallBack(IAsyncResult ar)
        {
            StateObject obj = (StateObject)ar.AsyncState;
            Socket socket = obj.workSocket;

            int BufferSize = socket.EndReceive(ar);

            String str = Encoding.ASCII.GetString(
                  obj.buffer, 0, BufferSize);
            if (str.IndexOf("<e>") != -1)
            {
                Console.WriteLine(str);
            }
            else
            {
                socket.BeginReceive(obj.buffer, 0, StateObject.BufferSize, SocketFlags.None, new AsyncCallback(ReciveCallBack), obj);
            }
        }
 

rozumiem ze w ten sposób transmisja danych jest ciągła aż nie pojawi się "<e>".
Co sie stanie jak pojawi sie ten magiczny kod? Samo odbieranie danych się zakończy ale wywołując znowu Recive() proszę program o odczytywanie zupełnie nowych danych ?

0

Przepraszam "az pojawi sie <e>" tak powinno byc.

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