public void StopListening() { listener.Close(); listener = null; bgw_StartListner = null; CountOfClinetChange?.Invoke(); LogRecived?.Invoke(LogTypes.ServerStoped, "Server stopped"); }
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); }