Sockets em java
Augusto Vítor Sousa Campos (501070324) ascampos@student.dei.uc.pt http://www.dei.uc.pt/~ascampos
Augusto Campos IRC – Trabalho de Sockets
1/3
Objectivo: O objectivo deste trabalho é o desenvolvimento de um ambiente de comunicação, o IRCChat, para troca de mensagens entre dois ou mais utilizadores. O ambiente de comunicação é constituído por um servidor e um ou vários clientes podendo os clientes trocar entre si mensagens com ligações P2P. Visão Geral: Assim que a ligação é realizada, é perguntado pelo Servidor ao Cliente qual o Nickname que o utilizador pretende, após validar se não existe outro Nickname igual, é atribuído ao utilizador e é incluído na lista que é então enviada a todos os utilizadores ligados nesse instante para o utilizador. Para os restantes, apenas vai a indicação de que foi adicionado o utilizador X. Após o utilizador se encontrar validado, pode enviar ao servidor comandos ou mensagens. Os comandos são uma série de palavras-chave precedidas por uma “/”. Comandos:
/help /quit /users /to -> Mostra uma lista dos comandos disponíveis -> Termina a conexão com o servidor -> Força a obtenção da lista dos utilizadores logados -> Envia a mensagem privada apenas para o Utilizador
Qualquer outro texto trocado com o servidor é encarado como uma mensagem que será posteriormente enviada para todos os utilizadores. Quando um utilizador é adicionado, os outros recebem a mensagem “+User: X”, sendo X o Nickname do utilizador adicionado e, quando um utilizador deixa de estar conectado quer pelo comando “/quit” ou por quebrar a ligação com o servidor, todos os outros recebem “-User: X”. O Servidor guarda no ficheiro Logs.txt registo de todas as conexões dos clientes. Ferramentas: Foram utilizadas para o desenvolvimento deste trabalho a linguagem de programação Java (http://en.wikipedia.org/wiki/Java_(programming_language) ) na edição Standard (Java Platform, Standard Edition) na Versão 1.6.0_10 (Java(TM) SE Runtime