Example #1
0
        public void OffLine()
        {
            Console.WriteLine("{0} is offline!", uName);

            var uu = LoginUsers.Find(a => a.UserName == uName);

            if (uu != null)
            {
                LoginUsers.Remove(uu);
            }

            if (DicUserSockets.ContainsKey(uName))
            {
                DicUserSockets.Remove(uName);
            }

            var userService = new UserService(uName);
            var theFriends  = userService.GetFriends();

            foreach (var f in theFriends)
            {
                if (DicUserSockets.ContainsKey(f.UserName))
                {
                    LogoutMsg logout = new LogoutMsg(uName);
                    var       sock   = DicUserSockets[f.UserName];
                    logout.Send(sock);
                }
            }
        }
Example #2
0
        public List <OnlineUserInfo> GetFriends()
        {
            List <OnlineUserInfo> list = new List <OnlineUserInfo>();
            var friends = Friends.FindAll(x => x.UserName == uName);

            foreach (Friends f in friends)
            {
                var u = new OnlineUserInfo();
                u.UserName = f.FriendName;
                var x = LoginUsers.Find(user => user.UserName == u.UserName);
                u.IPEnd = x == null ? null : x.IPEnd;
                list.Add(u);
            }
            return(list);
        }
Example #3
0
        public IPAddress GetIP()
        {
            var user = LoginUsers.Find(u => u.UserName == uName);

            return(user == null ? null : user.IPEnd.Address);
        }
Example #4
0
        public static OnlineUserInfo GetUserInfoFromSocket(Socket sock)
        {
            var remote = sock.RemoteEndPoint as IPEndPoint;

            return(LoginUsers.Find(u => u.IPEnd == remote));
        }