Ejemplo n.º 1
0
        public void StopListening()
        {
            listener.Close();
            listener         = null;
            bgw_StartListner = null;

            CountOfClinetChange?.Invoke();

            LogRecived?.Invoke(LogTypes.ServerStoped, "Server stopped");
        }
Ejemplo n.º 2
0
        public void AcceptCallback(IAsyncResult ar)
        {
            allDone.Set();

            if (OnlineSocket == null)
            {
                OnlineSocket = new List <Socket>();
            }

            if (listener == null)
            {
                return;
            }

            Socket handler = listener.EndAccept(ar);

            CountOfClinetChange?.Invoke();

            LogRecived?.Invoke(LogTypes.ClientConnected, string.Format("Client {0} is now connected", handler.IpAdress()));

            if (!OnlineSocket.Contains(handler))
            {
                //OnlineSocket.ForEach(x =>
                //{
                //    if (x!=null && x.IpAdress() == handler.IpAdress())
                //        x = null;
                //});

                for (int i = 0; i < OnlineSocket.Count; i++)
                {
                    if (OnlineSocket[i] != null)
                    {
                        if (OnlineSocket[i].IpAdress() == handler.IpAdress())
                        {
                            OnlineSocket[i] = null;
                        }
                    }
                }

                OnlineSocket.Add(handler);
                OnClientConnect?.Invoke(handler.IpAdress());
            }

            // Create the state object.
            StateObject state = new StateObject();

            state.workSocket = handler;
            handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReadCallback), state);
        }