Example #1
0
 //send message to every user
 static private void Broadcast(Message message)
 {
     foreach (TcpClient client in users.Keys)
     {
         TCPHelper.SendMessage(message, client);
     }
 }
Example #2
0
 public Worker(ILogger <Worker> logger, TCPHelper helper, IConfiguration configuration)
 {
     _logger        = logger;
     _helper        = helper;
     _configuration = configuration;
     config         = ApplicationConfig.Instance;
 }
Example #3
0
 /// <summary>
 /// Starts an endless while-loop, where the tcp client listens for new messages from the endpoint
 /// </summary>
 /// <returns></returns>
 public IEnumerator ListenForMessages()
 {
     while (!isDisconnecting)
     {
         if (Connected)
         {
             if (networkStream.DataAvailable)
             {
                 ChatDataPackage msg = JsonUtility.FromJson <ChatDataPackage>(TCPHelper.ReadMessage(networkStream));
                 foreach (var item in msg.ChatDataPackages)
                 {
                     item.SenderClient = this;
                     clientName        = item.PlayerName;
                     lock (ChatServer.tickMessages)
                     {
                         ChatServer.tickMessages.ChatDataPackages.Add(item);
                     }
                 }
                 //Debug.Log(msg);
             }
             yield return(null);
         }
         else
         {
             isDisconnecting = true;
             DisconnectClient();
         }
     }
 }
Example #4
0
    public void SendWhisper(string whisperName, ChatServerClient client)
    {
        if (tickMessages.ChatDataPackages.Count > 0)
        {
            //DEBUG
            if (chatGUI != null)
            {
                foreach (var item in tickMessages.ChatDataPackages)
                {
                    chatGUI.chatHistorie.Add(item.PlayerName + " : " + item.port + " : " + item.Message + " : to: " + item.Target);
                }
            }


            byte[] mes = TCPHelper.MessageBytes(tickMessages);
            //skal finde playeren man whisper
            for (int i = 0; i < Clients.Count; i++)
            {
                if (Clients[i].clientName == whisperName)
                {
                    Clients[i].SendToClient(mes);
                    client.SendToClient(mes);
                }
            }
        }
    }
Example #5
0
    private static void PackageTick(object sender, ElapsedEventArgs e)
    {
        lock (Server.ChangedCells)
        {
            List <PositionDataPackage> positionData = PositionData();

            for (int i = 0; i < Players.Count; i++)
            {
                List <GridDataPackage> gridData = GridData(Players[i].PlayerID);

                byte[] package = PackageToByte(new DataCollectionPackage()
                {
                    PositionDataPackages = positionData, GridDataPackages = gridData
                });
                if (TCPHelper.Connected(Players[i].Client.tcpClient))
                {
                    Players[i].Client.SendToClient(package);
                }
                else
                {
                    disconnectedClients.Add(Players[i].Client);
                }
            }
            ChangedCells.Clear();
        }

        foreach (var item in disconnectedClients)
        {
            Disconnect(item);
        }
        disconnectedClients.Clear();
    }
Example #6
0
    public void SendToGoupe(string groupName)
    {
        if (tickMessages.ChatDataPackages.Count > 0)
        {
            //DEBUG
            if (chatGUI != null)
            {
                foreach (var item in tickMessages.ChatDataPackages)
                {
                    chatGUI.chatHistorie.Add(item.Target + " : " + item.port + " : " + item.Message);
                }
            }


            byte[] mes = TCPHelper.MessageBytes(tickMessages);
            //skal finde gruppen

            for (int i = 0; i < groups.Count; i++)
            {
                if (groups[i].GroupName == groupName)
                {
                    for (int y = 0; y < groups[i].Members.Count; y++)
                    {
                        groups[i].Members[y].SendToClient(mes);
                    }
                }
            }
        }
    }
Example #7
0
        // connection
        private void handleClientConnection(object obj)
        {
            TcpClient client = obj as TcpClient;

            this.stream = new SslStream(client.GetStream(), false);

            try
            {
                this.stream.AuthenticateAsServer(this.server.certificate, false, SslProtocols.Tls, true);

                SSLHelper.DisplaySecurityLevel(this.stream);
                SSLHelper.DisplaySecurityServices(this.stream);
                SSLHelper.DisplayCertificateInformation(this.stream);
                SSLHelper.DisplayStreamProperties(this.stream);

                this.stream.ReadTimeout  = Config.connectionTimeout;
                this.stream.WriteTimeout = Config.connectionTimeout;

                while (true)
                {
                    this.server.receiveRequest(this, TCPHelper.read(this.stream));

                    Thread.Sleep(10);
                }
            }
            catch (Exception e)
            {
                ExceptionHelper.print(e);
            }
            finally
            {
                this.stream.Close();
                client.Close();
            }
        }
Example #8
0
 /// <summary>
 /// Allows the game to perform any initialization it needs to before starting to run.
 /// This is where it can query for any required services and load any non-graphic
 /// related content.  Calling base.Initialize will enumerate through any components
 /// and initialize them as well.
 /// </summary>
 protected override void Initialize()
 {
     SetupControler();
     TCPHelper.Initialize(__DEBUG_PORT, "127.0.0.1", "Joueur 1 lol mdr");
     m_graphics.GraphicsDevice.PresentationParameters.RenderTargetUsage = RenderTargetUsage.PreserveContents;
     base.Initialize();
 }
Example #9
0
        // connection
        public void startConnection()
        {
            TcpClient client = new TcpClient(Config.host, Config.port);

            this.stream = new SslStream(client.GetStream(), false, new RemoteCertificateValidationCallback(validateCertificate), null);

            try
            {
                this.stream.AuthenticateAsClient(Config.machineName);

                TCPHelper.write(this.stream, Request.newRequest());
            }
            catch (Exception e)
            {
                Console.WriteLine("Couldn't authenticate: {0}", e.StackTrace);

                if (e.InnerException != null)
                {
                    Console.WriteLine("Inner exception: {0}", e.InnerException.Message);
                }

                client.Close();
                return;
            }

            this.thread = new Thread(new ThreadStart(readRequest));
            this.thread.Start();
        }
Example #10
0
        private bool TryEnableStats()
        {
            try
            {
                // Ignoring bandwidth measurement for loopbacks as it is meaningless anyway
                if (this.TargetIP == "127.0.0.1" || this.TargetIP == "::1")
                {
                    return(false);
                }

                if (this.rawConnection is MIB_TCPROW_OWNER_MODULE)
                {
                    rawrow = ((MIB_TCPROW_OWNER_MODULE)this.rawConnection).ToTCPRow();
                    TCPHelper.EnsureStatsAreEnabled((TCPHelper.MIB_TCPROW)rawrow);
                }
                else if (this.rawConnection is MIB_TCP6ROW_OWNER_MODULE)
                {
                    rawrow = ((MIB_TCP6ROW_OWNER_MODULE)this.rawConnection).ToTCPRow();
                    TCP6Helper.EnsureStatsAreEnabled((TCP6Helper.MIB_TCP6ROW)rawrow);
                }

                statsEnabled = true;
            }
            catch
            {
                InboundBandwidth  = 0;
                OutboundBandwidth = 0;
                IsAccessDenied    = true;
            }

            return(false);
        }
Example #11
0
    public IEnumerator ListenToServer()
    {
        Debug.Log("ListenToServer Started");

        while (true)
        {
            if (client.GetStream().DataAvailable)
            {
                string          packetString = TCPHelper.ReadMessage(client.GetStream());
                ChatDataPackage packet       = JsonUtility.FromJson <ChatDataPackage>(packetString);
                foreach (var item in packet.ChatDataPackages)
                {
                    // dele op i grupper her
                    string senderClient = item.PlayerName;
                    string msg          = senderClient + ": " + item.Message;

                    // check for at ændre farve

                    chatSystem.SendMessageToChat(msg, item.typeColor);
                    msg = "";
                }
            }
            yield return(null);
        }
    }
Example #12
0
    public void Message(string msg)
    {
        //  chatTarget = GetTargetString(msg);
        if (GetTargetString(msg))
        {
            msg = MessageCleaner(msg);
            ChatDataPackage cdp = new ChatDataPackage();
            cdp.ChatDataPackages.Add(new ChatData
            {
                //  SenderName = "Tais",
                SenderName = ((IPEndPoint)client.Client.LocalEndPoint).Address.ToString(),
                Message    = msg,
                port       = ((IPEndPoint)client.Client.LocalEndPoint).Port.ToString(),
                Target     = chatTarget,
                PlayerName = clientName,
                typeColor  = msColor
            });



            byte[] data = TCPHelper.MessageBytes(cdp);

            client.GetStream().Write(data, 0, data.Length);

            Debug.Log("Sent: " + msg);
        }
    }
Example #13
0
 public ServerUser(TcpClient tcpClient)
 {
     Helper              = new TCPHelper();
     Helper.tcpClient    = tcpClient;
     Helper.DataHandler += DataHelpers.Handle4Server;
     Helper.Ready();
     Task.Run(() => Helper.ReceiveData());
 }
Example #14
0
 public UserOnServer(TcpClient tcpClient)
 {
     helper              = new TCPHelper();
     helper.tcpClient    = tcpClient;
     helper.DataHandler += CC.DataHandle.Handle;
     helper.Ready();
     Task.Run(() => helper.ReceiveData());
 }
Example #15
0
        private void btnCheck_Click(object sender, RoutedEventArgs e)
        {
            string Ip   = txtIP.Text.Trim();
            int    port = Convert.ToInt32(txtPort.Text.Trim());

            helper = new TCPHelper(IPAddress.Parse(Ip), port);
            MessageBox.Show("设置成功!");
        }
Example #16
0
    public void SendTokenToServer()
    {
        byte[]    tokenData = TCPHelper.MessageBytes(token);
        TcpClient client    = new TcpClient(Globals.MIDDLEWARE_IP, Globals.TOKENSYSTEM_PORT);

        client.GetStream().Write(tokenData, 0, tokenData.Length);
        string validateRequest = ((int)MessageType.Validate).ToString() + Server.MESSAGE_TYPE_INDICATOR + token;

        Message(validateRequest);
    }
Example #17
0
        /// <summary>
        /// 发送消息到客户端
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Btn_sentToClient_Click(object sender, EventArgs e)
        {
            TcpClient client = (TcpClient)cb_client.SelectedValue;
            string    msg    = "";
            bool      result = TCPHelper.SendToClient(client, tb_data.Text, out msg);

            if (!result)
            {
                ShowMessage(msg);
            }
        }
Example #18
0
        public EventTimeBarForm()
        {
            InitializeComponent();

            // 载入网页
            var htmlPathWithPort = TCPHelper.fillPortInHtml(Const.htmlPath + @"EventTimeBar\", "index.html");

            this.webKitBrowser1.Navigate(htmlPathWithPort);
            TCPHelper.responceFuncDict.Add("/eventTimeBar/getTopicList", getTopicList);
            TCPHelper.responceFuncDict.Add("/eventTimeBar/getEventsByTopic", getEventsByTopic);
            TCPHelper.responceFuncDict.Add("/eventTimeBar/saveNeo", saveNeo);
        }
Example #19
0
    public static void Disconnect(ServerClient disconnectedClient)
    {
        //Session manager - UNTESTED
        try
        {
            UserSession ses = new UserSession()
            {
                UserID = disconnectedClient.clientName, InGame = false, Request = SessionRequest.SetStatus
            };
            byte[] data = TCPHelper.MessageBytes(ses);
            Server.SessionClient.GetStream().Write(data, 0, data.Length);
        }
        catch
        {
        }

        ServerActor disconnectedActor = null;

        foreach (ServerActor actor in Players)
        {
            if (actor.Client == disconnectedClient)
            {
                disconnectedActor = actor;
                SendDisconnectNotification(disconnectedActor.PlayerID);
            }
        }
        if (disconnectedActor != null)
        {
            //Gem spillerens state
            List <PlayerDataModel> saveStates = new List <PlayerDataModel>();
            saveStates.Add(new PlayerDataModel()
            {
                PlayerDataRequest = PlayerDataRequest.Update,
                Online            = false,
                PositionX         = disconnectedActor.startingX,
                PositionY         = disconnectedActor.startingY,
                UserID            = disconnectedActor.Client.clientName,
                ResponseExpected  = false
            });
            byte[] data = TCPHelper.MessageBytesNewton(saveStates);
            databaseClient.GetStream().Write(data, 0, data.Length);

            //Fjern fra spillet
            MapGrid.grid[disconnectedActor.startingX, disconnectedActor.startingY].GetComponent <Cell>().UnoccupyCell();
            ChangedCells.Add(Server.MapGrid.grid[disconnectedActor.startingX, disconnectedActor.startingY].GetComponent <Cell>(), 0);
            Players.Remove(disconnectedActor);
            GameObject.Destroy(disconnectedActor.gameObject);
            Clients.Remove(disconnectedClient);
        }
    }
Example #20
0
        public EventCountryForm()
        {
            InitializeComponent();

            // 载入网页
            var listHtmlPathWithPort = TCPHelper.fillPortInHtml(Const.htmlPath + @"WorldMap\", "textList.html");

            this.listWebkitBrowser.Navigate(listHtmlPathWithPort);
            var mapHtmlPathWithPort = TCPHelper.fillPortInHtml(Const.htmlPath + @"WorldMap\", "worldMap.html");

            this.mapWebkitBrowser.Navigate(mapHtmlPathWithPort);
            TCPHelper.responceFuncDict.Add("/eventCountry/changeCountry", changeCountry);
            TCPHelper.responceFuncDict.Add("/eventCountry/getEventsByCountry", getEventsByCountry);
        }
Example #21
0
        /// <summary>
        /// Retourne la position du héros.
        /// </summary>
        public Vector2 GetMyPosition()
        {
            System.IO.MemoryStream s      = new System.IO.MemoryStream();
            System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8);
            output.NewLine = "\n";
            output.WriteLine(((int)22).ToString());
            output.Close();
            TCPHelper.Send(s.ToArray());
            byte[] response = TCPHelper.Receive();
            s = new System.IO.MemoryStream(response);
            System.IO.StreamReader input = new System.IO.StreamReader(s, BOMLESS_UTF8);
            Vector2 returnValue          = Vector2.Deserialize(input);

            return((Vector2)returnValue);
        }
Example #22
0
        private void btnStart_Click(object sender, RoutedEventArgs e)
        {
            btnStart.IsEnabled = false;
            btnStop.IsEnabled  = true;
            string ip = this.cbbIP.SelectedValue.ToString();
            //MessageBox.Show(ip+":"+txtPort.Text+"已开始监听");
            int p = int.Parse(txtPort.Text);

            helper            = new TCPHelper(IPAddress.Parse(ip), p);
            helper.ExHandler += ShowMsg;
            helper.StartListen(p);
            ShowMsg(null, string.Format("{0}:{1}-->监听已开始", helper.IP, helper.port));
            helper.AddTcpClientHandler += CreateClientTask;
            Task.Run(() => helper.ListenClient());
        }
Example #23
0
        /// <summary>
        /// Obtient toutes les données du jeu qui ne vont pas varier lors de son déroulement. A appeler une
        /// fois en PickPhase (pour récup les sorts) et une fois en GamePhase (pour récup les données de la
        /// map)
        /// </summary>
        public GameStaticDataView GetStaticData()
        {
            System.IO.MemoryStream s      = new System.IO.MemoryStream();
            System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8);
            output.NewLine = "\n";
            output.WriteLine(((int)0).ToString());
            output.Close();
            TCPHelper.Send(s.ToArray());
            byte[] response = TCPHelper.Receive();
            s = new System.IO.MemoryStream(response);
            System.IO.StreamReader input       = new System.IO.StreamReader(s, BOMLESS_UTF8);
            GameStaticDataView     returnValue = GameStaticDataView.Deserialize(input);

            return((GameStaticDataView)returnValue);
        }
Example #24
0
        /// <summary>
        /// Lors de la phase de picks, retourne l'action actuellement attendue de la part de ce héros.
        /// </summary>
        public PickAction Picks_NextAction()
        {
            System.IO.MemoryStream s      = new System.IO.MemoryStream();
            System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8);
            output.NewLine = "\n";
            output.WriteLine(((int)1).ToString());
            output.Close();
            TCPHelper.Send(s.ToArray());
            byte[] response = TCPHelper.Receive();
            s = new System.IO.MemoryStream(response);
            System.IO.StreamReader input       = new System.IO.StreamReader(s, BOMLESS_UTF8);
            PickAction             returnValue = (PickAction)Int32.Parse(input.ReadLine());

            return((PickAction)returnValue);
        }
Example #25
0
        /// <summary>
        /// Obtient la phase actuelle du jeu : Pick (=> phase de picks) ou Game (phase de jeu).
        /// </summary>
        public SceneMode GetMode()
        {
            System.IO.MemoryStream s      = new System.IO.MemoryStream();
            System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8);
            output.NewLine = "\n";
            output.WriteLine(((int)41).ToString());
            output.Close();
            TCPHelper.Send(s.ToArray());
            byte[] response = TCPHelper.Receive();
            s = new System.IO.MemoryStream(response);
            System.IO.StreamReader input = new System.IO.StreamReader(s, BOMLESS_UTF8);
            SceneMode returnValue        = (SceneMode)Int32.Parse(input.ReadLine());

            return((SceneMode)returnValue);
        }
Example #26
0
        /// <summary>
        /// Effectue une upgrade du spell passif du héros.
        /// </summary>
        public SpellUpgradeResult UpgradeMyPassiveSpell()
        {
            System.IO.MemoryStream s      = new System.IO.MemoryStream();
            System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8);
            output.NewLine = "\n";
            output.WriteLine(((int)38).ToString());
            output.Close();
            TCPHelper.Send(s.ToArray());
            byte[] response = TCPHelper.Receive();
            s = new System.IO.MemoryStream(response);
            System.IO.StreamReader input       = new System.IO.StreamReader(s, BOMLESS_UTF8);
            SpellUpgradeResult     returnValue = (SpellUpgradeResult)Int32.Parse(input.ReadLine());

            return((SpellUpgradeResult)returnValue);
        }
Example #27
0
        /// <summary>
        /// Obtient l'attack range de l'arme du héros au niveau actuel.
        /// </summary>
        public float GetMyAttackRange()
        {
            System.IO.MemoryStream s      = new System.IO.MemoryStream();
            System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8);
            output.NewLine = "\n";
            output.WriteLine(((int)31).ToString());
            output.Close();
            TCPHelper.Send(s.ToArray());
            byte[] response = TCPHelper.Receive();
            s = new System.IO.MemoryStream(response);
            System.IO.StreamReader input = new System.IO.StreamReader(s, BOMLESS_UTF8);
            float returnValue            = Single.Parse(input.ReadLine());

            return((float)returnValue);
        }
Example #28
0
        /// <summary>
        /// Arrête le déplacement automatique (A*) du joueur.
        /// </summary>
        public bool EndMoveTo()
        {
            System.IO.MemoryStream s      = new System.IO.MemoryStream();
            System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8);
            output.NewLine = "\n";
            output.WriteLine(((int)25).ToString());
            output.Close();
            TCPHelper.Send(s.ToArray());
            byte[] response = TCPHelper.Receive();
            s = new System.IO.MemoryStream(response);
            System.IO.StreamReader input = new System.IO.StreamReader(s, BOMLESS_UTF8);
            bool returnValue             = Int32.Parse(input.ReadLine()) == 0 ? false : true;

            return((bool)returnValue);
        }
Example #29
0
        /// <summary>
        /// Obtient l'id du modèle d'enchantement d'arme équipé par le héros. (-1 si aucun)
        /// </summary>
        public int GetMyWeaponEnchantId()
        {
            System.IO.MemoryStream s      = new System.IO.MemoryStream();
            System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8);
            output.NewLine = "\n";
            output.WriteLine(((int)20).ToString());
            output.Close();
            TCPHelper.Send(s.ToArray());
            byte[] response = TCPHelper.Receive();
            s = new System.IO.MemoryStream(response);
            System.IO.StreamReader input = new System.IO.StreamReader(s, BOMLESS_UTF8);
            int returnValue = Int32.Parse(input.ReadLine());

            return((int)returnValue);
        }
Example #30
0
        /// <summary>
        /// Retourne une vue vers le héros contrôlé par ce contrôleur.
        /// </summary>
        public EntityBaseView GetMyHero()
        {
            System.IO.MemoryStream s      = new System.IO.MemoryStream();
            System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8);
            output.NewLine = "\n";
            output.WriteLine(((int)21).ToString());
            output.Close();
            TCPHelper.Send(s.ToArray());
            byte[] response = TCPHelper.Receive();
            s = new System.IO.MemoryStream(response);
            System.IO.StreamReader input       = new System.IO.StreamReader(s, BOMLESS_UTF8);
            EntityBaseView         returnValue = EntityBaseView.Deserialize(input);

            return((EntityBaseView)returnValue);
        }