Como foi utilizado o NetBeans para construir o projeto, será necessário usá-lo para estas instruções surtirem efeito.
- Faça o download do projeto
- Compile os aquivos .java [Shift+F11 (Limpar e Construir Projeto) no NetBeans]
- Execute o
1-rmiregistry.bat
para usar ormic
e ormiregistry
- Execute o
2-Server.bat
- Execute o
3-Client.bat
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.
- 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.
- 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.
- Envio do seu nickname para o servidor e espera pela confirmação de aceitação ou não.
- 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.
- 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>
- 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.
- Desligar o cliente.
- Processar conexões dos clientes (concorrentemente).
- Reconhecimento de todas as mensagens recebidas dos clientes. Verificação de mensagens inválidas e resposta adequada.
- 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.
- Atualização da sua lista de clientes ativos.
- 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.
- 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.
- Desligar o cliente. Servidor recebe mensagem de fim de conexão e atualiza a sua base de dados.