Exemple #1
0
        private void Server_ClientDisconnect(object sender, TcpClient e)
        {
            int clientsConnected = server.ConnectedClientsCount;

            server.BroadcastLine("Cmsrv3x" + clientsConnected.ToString());
            Thread.Sleep(100);
        }
Exemple #2
0
 private void Server_DataReceived(object sender, SimpleTCP.Message e)
 {
     textStatus.Invoke((MethodInvoker) delegate()
     {
         if (e.MessageString.Contains("#N#A#M#E#"))
         {
             clientName = e.MessageString.Split(' ')[1];
             server.BroadcastLine("#N#A#M#E# " + serverName + ":");
         }
         else
         {
             if (!e.MessageString.Contains("Connected") && !e.MessageString.Contains("Connection terminated by Client"))
             {
                 textStatus.Text += clientName;
             }
             textStatus.Text += e.MessageString + System.Environment.NewLine;
             if (e.MessageString.Contains("Connection terminated by Client"))
             {
                 textStatus.Text += "Server starting..." + System.Environment.NewLine;
             }
         }
         if (e.MessageString.Contains("Connected"))
         {
             textStatus.Text += "Connected" + System.Environment.NewLine;
         }
     });
 }
Exemple #3
0
        private void startMulti_Click(object sender, EventArgs e)
        {
            server.BroadcastLine("StArT");
            this.Stop();

            MultiPlayerHost mp = new MultiPlayerHost(ip);

            this.Hide();
            mp.ShowDialog();
            this.Show();
        }
Exemple #4
0
 public void partyStart()
 {
     foreach (Character c in listPlayer)
     {
         print(c.getId() + " " + c.GetType().Name);
         server.BroadcastLine("s;" + c.getId() + ";" + c.GetType().Name);
     }
     server.BroadcastLine("seed;" + randomSeed().ToString());
     print("seed;" + randomSeed().ToString());
     partyStarted = true;
 }
        public void PlaceAChess(int x, int y)
        {
            if (_isConnecting && _client != null)
            {
                // client send data
                _client.WriteLine("player:" + player_name + "," + x + "," + y);
            }
            if (_isHosting && _server != null)
            {
                // server send data
                _server.BroadcastLine("player:" + player_name + "," + x + "," + y);
            }
            Chess chess = _game.PlaceAChess(x, y);

            if (chess != null)
            {
                chess.Name = "chess";
                this.Controls.Add(chess);
                _audio.Play();
            }
            if (_game.IsGameOver)
            {
                if (!_game.IsBlack)
                {
                    MessageBox.Show("Black wins");
                }
                else
                {
                    MessageBox.Show("White wins");
                }
                Reset();
            }
        }
 /// <inheritdoc />
 protected override void Update(Dictionary <object, Color> dataSet)
 {
     if ((dataSet != null) && (dataSet.Count > 0))
     {
         string m = GetLedString(dataSet);
         _tcpServer.BroadcastLine(m);
     }
 }
Exemple #7
0
 private void DataReceived(object sender, Message e)
 {
     Dispatcher.Invoke(() =>
     {
         TextSend.Text = e.MessageString;
         server.BroadcastLine(TextSend.Text);
     });
 }
Exemple #8
0
 static void server_DataReceived(object sender, SimpleTCP.Message e)
 {
     if (!string.IsNullOrEmpty(e.MessageString))
     {
         ClientTools.Capture_Screen();
         server.BroadcastLine("captured");
         //MessageBox.Show(e.MessageString);
     }
 }
 private void _SERVER_DataReceived(object sender, SimpleTCP.Message e)
 {
     txtStatus.Invoke((MethodInvoker) delegate()
     {
         txtStatus.Text         += new StringBuilder().Append("\n").Append(e.MessageString).ToString();
         string formattedMessage = new StringBuilder().Append("\n").Append(e.MessageString).ToString();
         _SERVER.BroadcastLine(formattedMessage);
     });
 }
Exemple #10
0
 private void InputBox_KeyDown(object sender, KeyEventArgs e)
 {
     if (e.Key == Key.Enter)
     {
         server.BroadcastLine("[Server] Sdělení serveru: " + InputBox.Text);
         OutputBox.Text += "[Server] " + InputBox.Text;
         InputBox.Text   = "";
     }
 }
Exemple #11
0
 public async Task SendUrl(string url)
 {
     try
     {
         var tcpmsg = new TcpMessage
         {
             MsgType  = MsgType.Url,
             Action   = ActionType.Execute,
             IsServer = true,
             Msg      = url
         };
         await Task.Run(() => _server.BroadcastLine(JsonConvert.SerializeObject(tcpmsg)));
     }
     catch (Exception e)
     {
         _log.Error(e);
     }
 }
Exemple #12
0
 private void Server_DataReceived(object sender, SimpleTCP.Message e)
 {
     if (new string(e.MessageString.ToCharArray(), 0, e.MessageString.Length - 1) == "☺GetList☺")
     {
         string a = "";
         for (int k = 0; k < clients.Count; k++)
         {
             a += clients[k] + "«";
         }
         e.Reply(a);
     }
     else
     {
         if (inc == false)
         {
             outputTxt.Invoke((MethodInvoker) delegate()
             {
                 string[] message = e.MessageString.Split(split, StringSplitOptions.RemoveEmptyEntries);
                 string a         = "";
                 for (int i = 1; i < message.Length; i++)
                 {
                     a += message[i];
                 }
                 a               = new string(a.ToCharArray(), 0, a.Length - 1);
                 string msg      = "<" + clients[Convert.ToInt32(message[0])] + ">: " + a;
                 outputTxt.Text += (Environment.NewLine + msg);
                 server.BroadcastLine(Environment.NewLine + msg);
             });
         }
         else
         {
             e.Reply((i - 1) + "«");
             outputTxt.Invoke((MethodInvoker) delegate()
             {
                 clients.Add(new string(e.MessageString.ToCharArray(), 0, e.MessageString.Length - 1));
                 inc             = false;
                 string a        = new string(e.MessageString.ToCharArray(), 0, e.MessageString.Length - 1);
                 outputTxt.Text += (Environment.NewLine + a + " joined the chat.");
                 server.BroadcastLine(Environment.NewLine + a + " joined the chat.");
             });
         }
     }
 }
Exemple #13
0
 private void btnStop_Click(object sender, EventArgs e)
 {
     btnStart.Enabled = true;
     btnStop.Enabled  = false;
     if (server.IsStarted)
     {
         lbStatus.Items.Add("Server is closed!");
         server.BroadcastLine("Server is closed!");
         server.Stop();
     }
 }
Exemple #14
0
        private void Server_DataReceived(object sender, SimpleTCP.Message e)
        {
            String msg = e.MessageString.Remove(e.MessageString.Length - 1);

            if (Regex.IsMatch(msg, "^&&@@@///.*&&@@@///$"))
            {
                int    asd1   = msg.IndexOf("/") + "/".Length;
                int    asd2   = msg.LastIndexOf("&");
                String result = msg.Substring(asd1 + 2, asd2 - asd1 - 3);
                ClientRegister(e.TcpClient, result);
            }
            else
            {
                if (ClientUsernames.ContainsKey(e.TcpClient))
                {
                    if (!string.IsNullOrWhiteSpace(msg))
                    {
                        Console.WriteLine("/// Message Received From " + ClientUsernames[e.TcpClient] + ": \" " + msg + " \" ///");
                        Console.WriteLine("/// Broadcasting it to all client! ///");

                        server.BroadcastLine("ˇ|//msg///" + "[" + DateTime.Now + "] " + ClientUsernames[e.TcpClient] + @" \\\|:|/// " + msg + "ˇ|//msg///");

                        WriteToLog("/// Message Received From " + ClientUsernames[e.TcpClient] + ": \" " + msg + " \" ///");
                        WriteToLog("/// Broadcasting it to all client! ///");
                    }
                    else
                    {
                        Console.WriteLine("/// Message Received From " + ClientUsernames[e.TcpClient] + ": \" " + msg + " \" ///");
                        Console.WriteLine("/// String is empty, not broadcasting it to clients! ///");

                        WriteToLog("/// Message Received From " + ClientUsernames[e.TcpClient] + ": \" " + msg + " \" ///");
                        WriteToLog("/// String is empty, not broadcasting it to clients! ///");
                    }
                }
                else
                {
                    Console.WriteLine(msg);
                    e.ReplyLine("Please register. (register command)");
                }
            }
        }
Exemple #15
0
 public static void Broadcast(this Node node, string message, bool catchError = true)
 {
     try
     {
         Server.BroadcastLine(message, node.TcpClient);
     }
     catch (Exception e)
     {
         if (catchError)
         {
             Program.Log($"------------\nError sending broadcast!\n{e.Message}\n{message}\n------------", true);
         }
         else
         {
             throw e;
         }
     }
 }
Exemple #16
0
        private void Server_DataReceived(object sender, SimpleTCP.Message e)
        {
            //if we recieve data to server, this means we need to update clients, and save file to disk
            CrossServerMessage RecievedData = JsonConvert.DeserializeObject <CrossServerMessage>(e.MessageString);

            Hangar.Debug("Client Data Recieved! " + RecievedData.Type.ToString());



            if (RecievedData.Type == MessageType.AddItem)
            {
                Server.BroadcastLine(e.MessageString);

                //Now that we added our items... we need to save file
                //Main.GridDefinition.Add(RecievedData.GridDefinition[0]);
                GridMarket.GridList.Add(RecievedData.List[0]);


                //Send update to clients on this game server!
                Comms.AddSingleItem(RecievedData.List[0]);

                //Save data to file (This is server!)
                MarketData Data = new MarketData();
                Data.List = GridMarket.GridList;
                FileSaver.Save(Path.Combine(Hangar.Dir, "Market.json"), Data);
            }
            else if (RecievedData.Type == MessageType.RemoveItem)
            {
                Server.BroadcastLine(e.MessageString);

                //Just goahead and check to see if the list contains etc.
                if (GridMarket.GridList.Any(x => x.Name == RecievedData.List[0].Name))
                {
                    Hangar.Debug("Removing: " + RecievedData.List[0].Name + " from market!");
                    GridMarket.GridList.RemoveAll(x => x.Name == RecievedData.List[0].Name);
                    //Main.GridDefinition.RemoveAll(x => x.name == RecievedData.List[0].Name);

                    //Send update to clients on this game server!
                    Comms.RemoveSingleItem(RecievedData.List[0]);
                }

                //Save data to file (This is server!)
                MarketData Data = new MarketData();
                Data.List = GridMarket.GridList;
                FileSaver.Save(Path.Combine(Hangar.Dir, "Market.json"), Data);
            }
            else if (RecievedData.Type == MessageType.PlayerAccountUpdated)
            {
                Server.BroadcastLine(e.MessageString);


                //Store values
                foreach (PlayerAccount account in RecievedData.BalanceUpdate)
                {
                    Utils.TryUpdatePlayerBalance(account);

                    if (!GridMarket.PlayerAccounts.ContainsKey(account.SteamID))
                    {
                        if (!account.AccountAdjustment)
                        {
                            GridMarket.PlayerAccounts.Add(account.SteamID, account.AccountBalance);
                        }
                    }
                    else
                    {
                        if (!account.AccountAdjustment)
                        {
                            GridMarket.PlayerAccounts[account.SteamID] = account.AccountBalance;
                        }
                        else
                        {
                            //Add this to the general list
                            GridMarket.PlayerAccounts[account.SteamID] = account.AccountBalance + GridMarket.PlayerAccounts[account.SteamID];
                        }
                    }
                }

                Accounts accounts = new Accounts();
                accounts.PlayerAccounts = GridMarket.PlayerAccounts;

                try
                {
                    FileSaver.Save(Path.Combine(Hangar.Dir, "PlayerAccounts.json"), accounts);
                    //File.WriteAllText(Path.Combine(Main.Dir, "PlayerAccounts.json"), JsonConvert.SerializeObject(accounts));
                }
                catch (Exception a)
                {
                    Hangar.Debug("IO Exception!", a, Hangar.ErrorType.Warn);
                }



                /*
                 * //Need to check to see if the player is online!
                 * //var first = RecievedData.BalanceUpdate.First();
                 * //ulong key = first.Key;
                 * //long val = first.Value;
                 *
                 *
                 *
                 * List<IMyPlayer> Seller = new List<IMyPlayer>();
                 * //MyAPIGateway.Players.GetPlayers(Seller, x => x.SteamUserId == Item.Steamid);
                 * MyAPIGateway.Players.GetPlayers(Seller, x => x.SteamUserId == key);
                 *
                 * if (Seller.Count == 1)
                 * {
                 *  //Player is online! Attempt to change player balance!
                 *  Seller[0].RequestChangeBalance(val);
                 *
                 *  //Send message to server that play is online!
                 *  CrossServerMessage PlayerOnlineMessage = new CrossServerMessage();
                 *  PlayerOnlineMessage.Type = CrossServer.MessageType.PlayerOnline;
                 *  //PlayerOnlineMessage.BalanceUpdate.Add(key, val);
                 *
                 *  Update(PlayerOnlineMessage);
                 * }
                 * else
                 * {
                 *  //Player is offline. Check to see if this server already has the player! (Remove and add new!)
                 *  if (Main.PlayerAccountUpdate.ContainsKey(key))
                 *  {
                 *      //Remove old Key
                 *      Main.PlayerAccountUpdate.Remove(key);
                 *  }
                 *
                 *  Main.PlayerAccountUpdate.Add(key, val);
                 *
                 *  Server.BroadcastLine(e.MessageString);
                 * }
                 */
            }
            else if (RecievedData.Type == MessageType.RequestAll)
            {
                CrossServerMessage AllData = new CrossServerMessage();
                //AllData.GridDefinition = Main.GridDefinition;
                AllData.List = GridMarket.GridList;
                //AllData.BalanceUpdate = Main.PlayerAccounts;
                AllData.Type = MessageType.RequestAll;

                string AllDataString = JsonConvert.SerializeObject(AllData);

                Server.BroadcastLine(AllDataString);
            }



            //File.WriteAllText(Path.Combine(Main.Dir, "Market.json"), FileData);


            //throw new NotImplementedException();
        }
Exemple #17
0
        static void Main(string[] args)
        {
            try
            {
                Dictionary <string, string> Users = new Dictionary <string, string>();

                var server        = new SimpleTcpServer();
                var serverRunning = false;
                var port          = 31415;

                server.Start(port);
                serverRunning = true;
                // var listening_ip = server.GetListeningIPs().Where(ip => ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);

                Log.Clear();
                Log.WriteLine(String.Format("Server started on {0}", port), Log.TYPE.INFO);

                server.ClientConnected += (sender, arg) =>
                {
                    var msg = String.Format("{0} joined.", Util.GetIP(arg.Client.RemoteEndPoint));
                    Log.WriteLine(msg, Log.TYPE.INFO);

                    server.BroadcastLine(String.Format("!INF:New client joined (Clients: {0})", server.ConnectedClientsCount));
                };

                server.ClientDisconnected += (sender, arg) =>
                {
                    if (server.ConnectedClientsCount <= 0)
                    {
                        serverRunning = false;
                    }

                    var ip  = Util.GetIP(arg.Client.RemoteEndPoint);
                    var msg = String.Format("{0} left.", ip);
                    Log.WriteLine(msg, Log.TYPE.INFO);

                    if (Users.ContainsKey(ip))
                    {
                        server.BroadcastLine(String.Format("!INF:{0} left (Clients: {1})", Users[ip], server.ConnectedClientsCount));
                        Users.Remove(ip);
                    }
                };

                server.DataReceived += (sender, msg) =>
                {
                    var ip = Util.GetIP(msg.TcpClient.Client.RemoteEndPoint);

                    if (Users.ContainsKey(ip))
                    {
                        Log.WriteLine(String.Format("{0}: {1}", Users[ip], msg.MessageString), Log.TYPE.INFO);
                        server.BroadcastLine(String.Format("{0}: {1}", Users[ip], msg.MessageString));
                    }
                    else
                    {
                        Users.Add(ip, msg.MessageString.Trim());
                        Log.WriteLine(String.Format("{0} is known as {1}", ip, Users[ip]), Log.TYPE.INFO);
                        server.BroadcastLine(String.Format("!INF:New client is known as {0}", Users[ip]));
                    }
                };

                while (serverRunning)
                {
                    ;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
        }
Exemple #18
0
 /// <summary>
 /// Envoie le message avec l'entête msg
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnSendMessage_Click(object sender, EventArgs e)
 {
     if (isServer)
     {
         server.BroadcastLine("msg" + tbxMessage.Text);
     }
     else
     {
         client.WriteLine("msg" + tbxMessage.Text);
     }
     lsbMessages.Items.Add(String.Format("Moi :{0}", Environment.NewLine + tbxMessage.Text + Environment.NewLine));
     tbxMessage.Clear();
 }
Exemple #19
0
 private void Connected(object sender, System.Net.Sockets.TcpClient e)
 {
     server.BroadcastLine($"{f.NormalFood.X},{f.NormalFood.Y}");
     snakeUpdate.Start();
 }
Exemple #20
0
        public void NewGame(string s)
        {
            if (s.Equals("e"))
            {
                this.win++;

                MessageBox.Show("you won with");
            }
            else if (s.Equals("c"))
            {
                this.lost++;

                MessageBox.Show("you lost");
            }
            else if (s.Equals("t"))
            {
                MessageBox.Show("Draw");
            }

            if (win > 0)

            {
                this.Game_Running = false;

                using (PlayersEntities1 player = new PlayersEntities1())
                {
                    DateTime foo      = DateTime.UtcNow;
                    long     unixTime = ((DateTimeOffset)foo).ToUnixTimeSeconds();
                    Player   p        = player.Players.FirstOrDefault(r => r.Username == logedUser);
                    Player   p2       = player.Players.FirstOrDefault(r => r.Username == clientUsername);
                    Game     game     = player.Games.Find(this.GameId);
                    game.WinnerId = p.Id;
                    if (game.Player_Game.HasValue)
                    {
                        maxPlayers = game.Player_Game.Value;
                    }
                    game.Status = "Closed";
                    //ovo je nepotrebno jer vec postoji jos treba testirat               player.Games.Add(game);
                    p.Games.Add(game);
                    p2.Games.Add(game);
                    player.SaveChanges();
                }


                winForm.pictureBox1.Image = Properties.Resources.winner;

                winForm.ShowDialog();
                DialogResult dialog = MessageBox.Show("New Game", "Exit", MessageBoxButtons.YesNo);

                if (dialog == DialogResult.Yes)
                {
                    this.win  = 0;
                    this.lost = 0;


                    OnFormUnsub("Form");
                    using (PlayersEntities1 p = new PlayersEntities1())
                    {
                        playerCount += tcpServer.ConnectedClientsCount;
                        Game game = new Game {
                            Status = "Open", Players_In_Game = playerCount, Player_Game = maxPlayers, Game_Type = gameType
                        };

                        p.Games.Add(game);

                        Player player = p.Players.FirstOrDefault(r => r.Username == logedUser);
                        player.Games.Add(game);
                        p.SaveChanges();
                        this.GameId = game.Id;
                    }

                    MessageBox.Show(this.GameId.ToString());
                }
                else if (dialog == DialogResult.No)
                {
                    OnFormUnsub("Form");

                    tcpServer.BroadcastLine("kicked");
                    Client_Disconnect(null, tcpClient);

                    //  this.OnFormClosing(new FormClosingEventArgs(CloseReason.UserClosing, false));
                }
            }

            else if (lost > 1)
            {
                this.Game_Running = false;

                using (PlayersEntities1 player = new PlayersEntities1())
                {
                    Player p1   = player.Players.FirstOrDefault(r => r.Username == logedUser);
                    Player p2   = player.Players.FirstOrDefault(r => r.Username == clientUsername);
                    Game   game = player.Games.Find(this.GameId);
                    game.WinnerId = p2.Id;
                    if (game.Player_Game.HasValue)
                    {
                        maxPlayers = game.Player_Game.Value;
                    }

                    game.Status = "Closed";
                    //visak testirat  player.Games.Add(game);
                    p1.Games.Add(game);
                    p2.Games.Add(game);
                    player.SaveChanges();
                }



                winForm.pictureBox1.Image = Properties.Resources.lost;
                winForm.ShowDialog();
                DialogResult dialog = MessageBox.Show("New Game", "exit", MessageBoxButtons.YesNo);

                if (dialog == DialogResult.Yes)
                {
                    this.win  = 0;
                    this.lost = 0;
                    OnFormUnsub("Form");
                    using (PlayersEntities1 p = new PlayersEntities1())
                    {
                        playerCount += tcpServer.ConnectedClientsCount;
                        Game game = new Game {
                            Status = "Open", Players_In_Game = playerCount, Player_Game = maxPlayers, Game_Type = gameType
                        };

                        p.Games.Add(game);

                        Player player = p.Players.FirstOrDefault(r => r.Username == logedUser);
                        player.Games.Add(game);
                        p.SaveChanges();
                        this.GameId = game.Id;
                    }
                }
                else if (dialog == DialogResult.No)
                {
                    OnFormUnsub("Form");

                    tcpServer.BroadcastLine("kicked");
                    Client_Disconnect(null, tcpClient);
                }
            }

            else
            {
                DialogResult dialog = MessageBox.Show("Continue", "exit", MessageBoxButtons.YesNo);



                if (dialog == DialogResult.Yes)
                {
                    OnFormUnsub("Form");
                }
                //need to add lost for server couse he left
                if (dialog == DialogResult.No)
                {
                    OnFormUnsub("Form");
                    tcpServer.BroadcastLine("kicked");
                    Client_Disconnect(null, tcpClient);
                }
            }
        }
Exemple #21
0
    // Start is called before the first frame update


    void Start()
    {
        partyStarted     = false;
        listPlayer       = new List <Character>();
        server           = new SimpleTcpServer().Start(8910);
        server.Delimiter = 0x13;
        int cpt = 0;

        server.DelimiterDataReceived += (sender, msg) =>
        {
            UnityThread.executeInUpdate(() =>
            {
                String[] param = msg.MessageString.Split(';');
                cpt            = listPlayer.Count;
                int id         = -1;

                switch (param[0])
                {
                case "mage":

                    listPlayer.Add(new Mage(cpt));
                    msg.ReplyLine("auth;" + cpt.ToString());
                    break;

                case "knight":

                    listPlayer.Add(new Knight(cpt));
                    msg.ReplyLine("auth;" + cpt.ToString());
                    break;

                case "archer":

                    listPlayer.Add(new Archer(cpt));
                    msg.ReplyLine("auth;" + cpt.ToString());
                    break;

                case "start":
                    partyStart();
                    break;

                case "STARTOBJ":

                    server.BroadcastLine(msg.MessageString);


                    break;

                case "OBJ":
                    server.BroadcastLine(msg.MessageString);

                    break;

                case "OBJATT":
                    server.BroadcastLine(msg.MessageString);
                    break;

                case "c":
                    id = Int32.Parse(param[1]);
                    listPlayer[id].setPos(float.Parse(param[2]), float.Parse(param[3]), float.Parse(param[4]));
                    listPlayer[id].setRot(float.Parse(param[5]), float.Parse(param[6]), float.Parse(param[7]));

                    listPlayer[id].setLftPos(float.Parse(param[8]), float.Parse(param[9]), float.Parse(param[10]));
                    listPlayer[id].setLftRot(float.Parse(param[11]), float.Parse(param[12]), float.Parse(param[13]));

                    listPlayer[id].setRgtPos(float.Parse(param[14]), float.Parse(param[15]), float.Parse(param[16]));
                    listPlayer[id].setRgtRot(float.Parse(param[17]), float.Parse(param[18]), float.Parse(param[19]));
                    break;
                }
            });
        };

        server.ClientConnected    += ClientConnected;
        server.ClientDisconnected += ClientDisconnected;
    }