Пример #1
0
 static void CiecieBuffora(Socket _socket, Klient _klient, int _odebrane)
 {
     _klient.bufforZajete += _odebrane;
     int indexer = 0;
     bool przerwanie = false;
     while (_klient.bufforZajete - indexer > 0)
     {
         int dlugosc = (int)_klient.buffor[indexer] - 1;
         indexer++;
         if (dlugosc <= _klient.bufforZajete - indexer)
         {
             byte[] przejsciowa = new byte[dlugosc];
             Array.Copy(_klient.buffor, indexer, przejsciowa, 0, dlugosc);
             Pakiet pakiet = new Pakiet(przejsciowa, _socket);
             pakiet.Wykonanie();
             Staty.pakietyOdebrane++;
             Staty.WyswietlStaty();
             indexer += dlugosc;
         }
         else
         {
             indexer--;
             byte[] przejsciowa = new byte[_klient.bufforZajete - indexer];
             Array.Copy(_klient.buffor, indexer, przejsciowa, 0, _klient.bufforZajete - indexer);
             Array.Copy(przejsciowa, _klient.buffor, przejsciowa.Length);
             _klient.bufforZajete = przejsciowa.Length;
             przerwanie = true;
             break;
         }
     }
     if (!przerwanie)
         _klient.bufforZajete = 0;
 }