Skip to content

ET33/socket-stream-io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

 ______ ______ __ ______ __ __ ______ __ __ /\ ___\ /\ __ \ /\ \ /\ __ \ /\ "-./ \ /\ __ \ /\ "-.\ \ \ \___ \ \ \ \/\ \ \ \ \____ \ \ \/\ \ \ \ \-./\ \ \ \ \/\ \ \ \ \-. \ \/\_____\ \ \_____\ \ \_____\ \ \_____\ \ \_\ \ \_\ \ \_____\ \ \_\\"\_\ \/_____/ \/_____/ \/_____/ \/_____/ \/_/ \/_/ \/_____/ \/_/ \/_/ ------------------------------------------------------------------------------ 

A Socket Stream Application

Solomon nada mais é do que uma aplicação de sockets em C que faz streaming de áudio entre um cliente e um servidor.

Minimum Viable Product (MVP)

Para o MVP algumas funcionalidaes devem ser implementadas, dentre elas temos:

No lado do cliente:

  • Se conectar a um servidor;
  • Listar músicas disponíveis no servidor com um determinado número na frente para facilitar escolha;
    • Exemplo: [1] Toto - Africa;
  • Dar play em alguma música;
  • Dar stop no player;
  • Tocar as músicas e não travar a interface de comunicação com o servidor;
  • Fechar o player e sair da aplicação.

No lado do servidor:

  • Aceitar conexão de um cliente;
  • Prover interface de comandos para o cliente;
  • Permitir escolher o caminho das músicas;
  • Enviar as músicas para o cliente em forma de streaming.

Expansion Pack

Algumas funcionalidades a mais que podem ser implementadas caso tenhamos tempo:

No lado do cliente:

  • Dar pause na música;
  • Dar next na música;
  • Dar previous na música;
  • Shuffle na playlist;
  • Repeat once na playlist;
  • Replay na música;
  • Repeat na plasylist;
  • Permitir que o cliente veja o nome da música que está tocando no momento e qual a faixa dela na playlist;
  • Possibilidade de reconexão ao servidor após encerramento do cliente.

No lado do servidor:

  • Prover interface que aceite os novos comandos do cliente;
  • Permitir múltiplas conexões de clientes;
  • Prover streaming para todos os clientes conectados ao mesmo tempo;
  • Listar número de clientes conectados, exemplo: [03/10];
  • Manter o servidor sempre ativo, independente de ter cliente ou não;
    • O administrador do servidor daria o comando EXIT para encerrar o servidor;
    • Um limite máximo de conexões pode ser estabelecido, exemplo: 10 conexões;
    • O servidor teria uma lista de conexões ativas e disponíveis;
      • A cada nova conexão o contador seria incrementado até chegar ao limite;
      • Caso um cliente se desconecte, o servidor liberaria a conexão para outro cliente poder conectar.

About

1º trabalho de redes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •