示例#1
0
 public void remove(CHalozatiKliensKezelo kk)
 {
     kliensek.Remove(kk.kliensID.id);
     kliensSzamlalo--;
     Debug.Assert(kliensSzamlalo >= 0, "A kliensszámlálóval baj van!", "Az érték nulla alá ment");
     //KliensekEsemenyei(kk, "remove");
 }
示例#2
0
 public bool logonelbiralas(CHalozatiKliensKezelo kk)
 {
     lock (_lock)
     {
         foreach (KeyValuePair <CPC, CHalozatiKliensKezelo> kvp in kliensek)
         {
             if (kvp.Value.kliensID.mac == (kk.kliensID.mac))
             {
                 return(false);
             }
         }
     }
     return(true);
 }
示例#3
0
        public CHalozatiKliensKezelo getKezeloFromWSname(string s)
        {
            CHalozatiKliensKezelo kk = null;

            foreach (KeyValuePair <CPC, CHalozatiKliensKezelo> kk1 in kliensek)
            {
                if (kk1.Key.wsname == s)
                {
                    kk = kk1.Value;
                    break;
                }
            }
            return(kk);
        }
示例#4
0
        public void reg(CHalozatiKliensKezelo kk)
        {
            lock (_lock)
            {
                kliensSzamlalo++;
                //kliensekDictionaryID++;

                //kk.kliensID.id = kliensekDictionaryID;

                CPC p = new CPC();

                p.wsname = kk.kliensID.gepNev;

                kk.kliensID.id = p;
                kliensek.Add(p, kk);
            }
            //KliensekEsemenyei(kk, "reg");
        }
示例#5
0
        public void listenForClients()
        {
            try
            {
                _tcpListener.Start();
                _listening = true;
                string IP = ((IPEndPoint)_tcpListener.LocalEndpoint).Address.ToString();
                Trace.WriteLine(string.Format("TCP listening start {0}:{1}", IP, port));
            }
            catch
            {
                Trace.WriteLine("A porttal valami baj van, (foglalt?)");
                return;
            }
            CHalozatiKliensKezelo kliensKezelo;
            TcpClient             tcpKliens;
            int counter = 0;

            while (true)
            {
                try
                {
                    if (!_listening)
                    {
                        break;
                    }
                    if (!_tcpListener.Pending())
                    {
                        Thread.Sleep(200); // choose a number (in milliseconds) that makes sense
                        continue;          // skip to next iteration of loop
                    }
                    else
                    {
                        //Thread.Sleep(200); //legyen idő feldolgozni a klienst...
                        tcpKliens    = null;
                        kliensKezelo = null;

                        //Log.logToFile("----waiting for new TcpClient----", false);

                        tcpKliens = _tcpListener.AcceptTcpClient();



                        //Log.logToFile("connecting from: " + Sclient.Client.RemoteEndPoint.ToString(), false);
                        //és kezeljük a klienst
                        string IP  = ((IPEndPoint)tcpKliens.Client.RemoteEndPoint).Address.ToString();
                        bool   ret = true;


                        //lock (Program._lock)
                        //{
                        //    foreach (KeyValuePair<pc, KliensKezelo> kvp in _kliensek)
                        //    {
                        //        if (kvp.Value.kliensID.ip == IP)
                        //        {
                        //            try
                        //            {
                        //                Trace.WriteLine("Existing client IP [{0}] on server!", IP);
                        //                MemoryStream ms = new MemoryStream();
                        //                BinaryFormatter bf = new BinaryFormatter();

                        //                bf.Serialize(ms, "existing");
                        //                byte[] data = ms.GetBuffer();
                        //                ms.Close();

                        //                NetworkMessage uzenet = new NetworkMessage(typeof(string), data);
                        //                IFormatter formatter = new BinaryFormatter();
                        //                //feladjuk a Stream-re
                        //                formatter.Serialize(tcpKliens.GetStream(), uzenet);
                        //                formatter = null;
                        //                uzenet = null;
                        //                data = null;
                        //                ms = null;
                        //                bf = null;

                        //            }
                        //            catch
                        //            {

                        //            }


                        //            ret = false;
                        //            break;
                        //        }
                        //    }
                        //}

                        if (ret)
                        {
                            counter++;

                            kliensKezelo = new CHalozatiKliensKezelo(this, IP);

                            kliensKezelo.AddSocket(tcpKliens);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(string.Format("Error... listening off ({0})", port));
                    Trace.WriteLine(ex);
                    //_tcpListener.Stop();
                    //_tcpListener = null;
                    //_listenThread.Abort();
                    serverListenStop();
                    break;
                }
            }
        }
示例#6
0
 public void process(CHalozatiKliensKezelo kk)
 {
     //KliensekEsemenyei(kk, "process");
 }