示例#1
0
        public bool SendToAllUsers(ServerGame.Core.Connctions.PackSendData PackSendData, Interface.Connctions.ConnctionType ConnctionType, bool sendtoself, IUser userSender)
        {
            try
            {
                byte pramterhi = 0;
                foreach (var data in PackSendData.AllData)
                {
                    if (pramterhi < data.PramterName)
                    {
                        pramterhi = data.PramterName;
                    }
                }
                PackSendData.AllData.Add(new Data.Data(userSender.Name, ++pramterhi));


                if (ServerGame.Interface.Connctions.ConnctionType.UDP == ConnctionType)
                {
                    foreach (var user in this.UserInRoom)
                    {
                        if (user.ConnctionUDP.IPEndPointUDP != null)
                        {
                            if (userSender != user || sendtoself)
                            {
                                //  PackSendData.AllData.Find(x => x.PramterName == pramterhi).DataSChange(userSender.Name);
                                Connctions.Server.ServerOject.Sendudp(user.ConnctionUDP.workSocket, PackSendData, user.ConnctionUDP.IPEndPointUDP);
                            }
                        }
                    }
                }
                else if (ServerGame.Interface.Connctions.ConnctionType.TCP == ConnctionType)
                {
                    foreach (var user in this.UserInRoom)
                    {
                        if (!user.ConnctionTCP.workSocket.Poll(1000, System.Net.Sockets.SelectMode.SelectRead) || !(user.ConnctionTCP.workSocket.Available == 0))
                        {
                            if (userSender != user || sendtoself)
                            {
                                //  PackSendData.AllData.Find(x => x.PramterName == pramterhi).DataSChange(userSender.Name);

                                Connctions.Server.ServerOject.Send(user.ConnctionTCP.workSocket, PackSendData);
                            }
                        }
                    }
                }
                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                return(false);
            }
        }
示例#2
0
 public static void Parser(PackSendData packSendData, ref ServerGame.Core.Connctions.AbstractServer.StateObject DataUser, Interface.Connctions.ConnctionType ConnctionType)
 {
     StoredEvent.Find(Event => string.Equals(Event.NameEvent, packSendData.NameOFEvent))
     .OnRunEvent
     (
         packSendData
         , ref DataUser, ConnctionType
     );
 }
示例#3
0
 public static void BradCastToAllOfData(IRoom roomX, Core.Connctions.PackSendData PackSendData, bool sendtoself, IUser userSender, Interface.Connctions.ConnctionType ConnctionType)
 {
     roomX.SendToAllUsers(PackSendData, ConnctionType, sendtoself, userSender);
 }