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; }