Beispiel #1
0
 private void BroadCastMessage(ServerClientController clientController, String message)
 {
     clients.Where(x => !x.Equals(clientController)).ToList().ForEach(controller =>
     {
         controller.SendMessage(message);
     }
                                                                      );
 }
Beispiel #2
0
    private void HandleClientDisconnect(ServerClientController clientController)
    {
        lock (clients_lock)
        {
            clients.Remove(clientController);
        }

        BroadCastMessage(clientController, $"<<< {clientController.GetClientName()} has leaved the chat!");
        Console.WriteLine($"{clientController.GetClientName()}: DISCONNECTED!");
    }
Beispiel #3
0
    private void HandleClientConnection(IAsyncResult asyres)
    {
        TcpListener acceptorRef = (TcpListener)asyres.AsyncState;
        TcpClient   client      = acceptorRef.EndAcceptTcpClient(asyres);

        clientConnectionReady.Set();

        ServerClientController scc = new ServerClientController(client);

        clients.Add(scc);
        scc.HandleClient(HandleClientMessage, HandleClientDisconnect);
    }
Beispiel #4
0
    private void HandleClientMessage(ServerClientController clientController, String message)
    {
        String command = new String(message.Where(c => !char.IsPunctuation(c) && !char.IsSymbol(c)).ToArray()).ToLower();

        commandHandlerDelegate commandToExecute = commands.GetValueOrDefault(command, null);

        if (commandToExecute != null)
        {
            commandToExecute(clientController);
            return;
        }

        String sendMessage = $"{clientController.GetClientName()} says: {message}";

        BroadCastMessage(clientController, sendMessage);
        // Console.WriteLine(sendMessage);
    }
Beispiel #5
0
 private void GoodByeCommandHandler(ServerClientController controller)
 {
     controller.SendMessage("Досвидания!");
     controller.Disconnect();
 }