private void HandleCommand(int command) { byte[] temp; switch (command) { case Commands.messageToClient: { int nickSize = BitConverter.ToInt32(GetMessage(4), 0); String nickname = Encoding.UTF8.GetString(GetMessage(nickSize)); int fileSize = BitConverter.ToInt32(GetMessage(4), 0); _server.SendMessageToClient(nickname, BitConverter.GetBytes(Commands.messageToClient)); _server.SendMessageToClient(nickname, BitConverter.GetBytes(Nickname.Length)); _server.SendMessageToClient(nickname, Encoding.UTF8.GetBytes(Nickname)); _server.SendMessageToClient(nickname, BitConverter.GetBytes(fileSize)); int count = 0; do { temp = GetMessage(0); count += temp.Length; _server.SendMessageToClient(nickname, temp); } while (count < fileSize); break; } case Commands.connect: { int nickSize = BitConverter.ToInt32(GetMessage(4), 0); temp = GetMessage(nickSize); Nickname = Encoding.UTF8.GetString(temp); Console.WriteLine(new StringBuilder("Клиент " + Nickname + " вошел в чат").ToString()); _server.SendAllNewClient(Id, temp); _server.AddClientInChat(); _server.SendActiveClients(Nickname); break; } case Commands.disconnect: { Console.WriteLine(new StringBuilder("Клиент " + Nickname + " покидает чат").ToString()); _server.SendAllClientOut(Id, Encoding.UTF8.GetBytes(Nickname)); _server.RemoveClientFromChat(); break; } default: break; } }