private void Server_ClientDisconnect(object sender, TcpClient e) { int clientsConnected = server.ConnectedClientsCount; server.BroadcastLine("Cmsrv3x" + clientsConnected.ToString()); Thread.Sleep(100); }
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; } }); }
private void startMulti_Click(object sender, EventArgs e) { server.BroadcastLine("StArT"); this.Stop(); MultiPlayerHost mp = new MultiPlayerHost(ip); this.Hide(); mp.ShowDialog(); this.Show(); }
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); } }
private void DataReceived(object sender, Message e) { Dispatcher.Invoke(() => { TextSend.Text = e.MessageString; server.BroadcastLine(TextSend.Text); }); }
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); }); }
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 = ""; } }
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); } }
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."); }); } } }
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(); } }
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)"); } } }
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; } } }
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(); }
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); } }
/// <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(); }
private void Connected(object sender, System.Net.Sockets.TcpClient e) { server.BroadcastLine($"{f.NormalFood.X},{f.NormalFood.Y}"); snakeUpdate.Start(); }
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); } } }
// 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; }