private void HandleRegistration(Socket socket, String name) { var port = 20000 + _players.Count; var player = new SocketServer(name, port); _players.Add(player); SocketHarnessMessage.SendMessage(socket, SocketHarnessMessage.MessageType.RegistrationPort, port.ToString(), Callback); }
private void RegisterCallback(IAsyncResult ar) { var state = (SocketState)ar.AsyncState; var socket = state.Socket; state.ByteBuffer = new byte[10240]; socket.BeginReceive(state.ByteBuffer, 0, state.ByteBuffer.Length, SocketFlags.None, RegistrationMessage, state); SocketHarnessMessage.SendMessage(socket, SocketHarnessMessage.MessageType.RegisterPlayer, _username); }
public void SendCommand(String command) { if (_socket != null && _socket.Connected && !killed) { SocketHarnessMessage.SendMessage(_socket, SocketHarnessMessage.MessageType.Command, command); Console.WriteLine("Your command has been sent to the server. Wait for the other players and the map will update"); } if (killed) { Console.WriteLine("You have been killed and can no longer send commands"); } }
public override void PlayerCommandFailed(ICommand command, string reason) { if (_clientSocket.Connected) { try { SocketHarnessMessage.SendMessage(_clientSocket, SocketHarnessMessage.MessageType.CommandFailed, reason); } catch (Exception ex) { Console.WriteLine("Could not send message to client " + Name + " because it disconnected"); Console.WriteLine(ex); } } }
public override void GameEnded(GameMap gameMap) { if (_clientSocket.Connected) { try { SocketHarnessMessage.SendMessage(_clientSocket, SocketHarnessMessage.MessageType.GameComplete, ""); } catch (Exception ex) { Console.WriteLine("Could not send message to client " + Name + " because it disconnected"); Console.WriteLine(ex); } } }
public override void PlayerKilled(GameMap gameMap) { if (_clientSocket.Connected) { try { var renderer = new ConsoleRender(gameMap); SocketHarnessMessage.SendMessage(_clientSocket, SocketHarnessMessage.MessageType.Killed, renderer.RenderTextGameState().ToString()); } catch (Exception ex) { Console.WriteLine("Could not send message to client " + Name + " because it disconnected"); Console.WriteLine(ex); } } }
public override void StartGame(GameMap gameState) { _gameMap = gameState; try { SocketHarnessMessage.SendMessage(_clientSocket, SocketHarnessMessage.MessageType.PlayerRegistered, PlayerEntity.Key.ToString()); } catch (Exception ex) { Console.WriteLine("Could not send message to client " + Name + " because it disconnected"); Console.WriteLine(ex); } NewRoundStarted(_gameMap); }
public override void NewRoundStarted(GameMap gameState) { var renderer = new ConsoleRender(gameState); if (_clientSocket.Connected) { try { SocketHarnessMessage.SendMessage(_clientSocket, SocketHarnessMessage.MessageType.GameMap, renderer.RenderTextGameState().ToString()); } catch (Exception ex) { Console.WriteLine("Could not send message to client " + Name + " because it disconnected"); Console.WriteLine(ex); } } else { PublishCommand(new DoNothingCommand()); } }