private void AddNewClient(Socket socket) { if ((Options & Utf8TcpServerOptions.SingleClientOnly) != 0) { lock (m_PeerListLock) { foreach (var pp in m_PeerList) { pp.Disconnect(); } } } Utf8TcpPeer peer = new Utf8TcpPeer(this, socket); lock (m_PeerListLock) { m_PeerList.Add(peer); peer.ConnectionClosed += OnPeerDisconnected; peer.DataReceived += OnPeerDataReceived; } if (ClientConnected != null) { Utf8TcpPeerEventArgs args = new Utf8TcpPeerEventArgs(peer); ClientConnected(this, args); } peer.Start(); }