Skip to content

ppaul804/SD_ChatRMI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema de Chat com Java RMI

Instruções

Windows

Como foi utilizado o NetBeans para construir o projeto, será necessário usá-lo para estas instruções surtirem efeito.

  1. Faça o download do projeto
  2. Compile os aquivos .java [Shift+F11 (Limpar e Construir Projeto) no NetBeans]
  3. Execute o 1-rmiregistry.bat para usar o rmic e o rmiregistry
  4. Execute o 2-Server.bat
  5. Execute o 3-Client.bat

Objetivo:

Pretende-se com este trabalho desenvolver um sistema de chat (tipo IRC) que, além de permitir o envio e recepção de mensagens entre os usuários conectados num grupo, permite também o envio e recepção de arquivos.

Sumário das funcionalidades:

  • Usuário reconhecido pelo seu nickname
  • Mensagens para todos (o normal)
  • Mensagens privadas
  • Transferência de arquivos (direta entre clientes)
  • O servidor deve ter um mapeamento ip:porta -> nick para todos os clientes como forma básica de garantir que ninguém envie uma mensagem por outro.

Tarefas dos clientes:

  1. Conexão ao servidor. O programa tem de estar prevenido para a ocorrência de situações de erro, tais como não existir nenhum servidor ligado.
  2. Envio do seu nickname para o servidor e espera pela confirmação de aceitação ou não.
  3. Se for aceite, começa a enviar mensagens para o servidor e recebe mensagens do servidor (de outros clientes). Sintaxe de envio das mensagens:

MSG: <text> Enviar mensagem para todos (o normal). O servidor substitui <text> por <sndnick>:<text> (onde sndnick é o nickname do emissor) e passa-a a todos os clientes.

PRIVATE: <recnick>:<text> Enviar mensagem privada. O servidor substitui <recnic> por <sndnick> e passa-a ao receptor.

  1. Mudar de nick. O servidor deve responder com a mesma mensagem indicando aceitação, ou com NICKERR: <razão> indicando ocorrência de erro (nick já atribuído a outro cliente). Sintaxe de mudança de nick:

NICK: <nickname>

  1. Envio de arquivos entre clientes. Para o cliente nick2 enviar um arquivo ao cliente nick1, primeiro envia um SNDFILE. A transmissão de informação do arquivo entre clientes, deve ter a intervenção do servidor.
  2. Desligar o cliente.

Tarefas do servidor:

  1. Processar conexões dos clientes (concorrentemente).
  2. Reconhecimento de todas as mensagens recebidas dos clientes. Verificação de mensagens inválidas e resposta adequada.
  3. Após receber um pedido do cliente, pedir o seu nickname (internamente na programação), autenticá-lo, e enviar mensagem de aceitação ou não da conexão do cliente.
  4. Atualização da sua lista de clientes ativos.
  5. Se for aceite, recebe mensagens dos clientes, verifica se são mensagens para todos ou apenas para um deles, e envia a mensagem para o/os destino/os.
  6. Mudar de nick. O servidor deve, se não houver nenhum cliente com aquele nickname, atualizar a sua base de dados com o novo nick. Note-se que em cada cliente, quando aparece uma mensagem de um outro cliente, deve ser indicado o nick desse cliente.
  7. Desligar o cliente. Servidor recebe mensagem de fim de conexão e atualiza a sua base de dados.

About

Sistema de Chat com Java RMI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published