void SocketDisconnected(object sender, TcpServer.SocketEndPointEventArgs e) { Console.WriteLine("Socket disconnected from: " + e.IPEndPoint); using (usersSync.UseUpgradeableLock()) { // Finding appropriate user var userInfo = users.SingleOrDefault(ui => ui.EndPoint == e.IPEndPoint); if (userInfo == null) { Console.WriteLine("Unknown user disconnected!!"); return; } // Changing it state using (usersSync.UseWriteLock()) { userInfo.OnDisconnect(); } // And sending this information to al users SendUpdatedUserState(userInfo); } }
void SocketConnected(object sender, TcpServer.SocketEndPointEventArgs e) { Console.WriteLine("Socket connected from: {0}", e.IPEndPoint); }