Exemplo n.º 1
0
 public static void PrzyjmowaniePolaczen(IAsyncResult _wynik)
 {
     Socket socket;
     try
     {
         socket = socketSerwera.EndAccept(_wynik);
     }
     catch (ObjectDisposedException)
     {
         return;
     }
     Klient kl = new Klient(socket);
     Dane.klient.Add(socket, kl);
     Interfejs.Konsola("dolaczyl nowy klient", Interfejs.KolorKonsoli.dolaczenie);
     socket.BeginReceive(kl.buffor, 0, kl.buffor.Length, SocketFlags.None, OdbieranieDanych, socket);
     socketSerwera.BeginAccept(PrzyjmowaniePolaczen, null);
 }
Exemplo n.º 2
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;
 }