Mam taki problem:
Mam program w którym używam metody BeginReceive i jej callbacku, nazwanego przeze mnie OnReceive.
W tym callbacku jest switch, który na podstawie pierwszego bajtu odebranych danych wykonuje rózne operacje, ale wczesnie zgłasza event, który odnotowuje odebranie danych w okienku. Problem jest taki, że nadejście jednego pakietu odnotowywane jest kilka/kilkanaście razy. Tak jakby po odebraniu tego jednego pakietu fukncja "kręciła się"

metoda OnReceive wygląda tak:

        private void OnReceived(IAsyncResult ar)
        {
            
           ;
                Socket s = (Socket)ar.AsyncState;                
                int read = s.EndReceive(ar);
                
                this.OdebranoPakiet(socket, new OdebranoPakietEventArgs(buffer));
                switch (buffer[0])
                {
                    
                    //obrabianie pakietu                      
                            
                    
                }
                
                
                s.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(OnReceived),s);               
                
           
            
        }

co zrobic, żeby ta funkcja mi się nie kręciła? Wczesniej używałem takiej i nie było jakos problemu