P2P chat simples para a matéria Teleinformática e Redes 2 Professor: Jacir Luiz Bordim Integrantes: Guilherme Branco, Pedro Henrique, Samuel Pala
O programa p2pchat foi desenvolvido em python, versão 2.7. A interface foi desenvolvida em TKinter na revisão 81008.
P2P, ou peer-to-peer, tem como intuito descentralizar o servidor de um aplicativo em redes, assim o ponto de falha é minimizado já que não há apenas um responsável por toda a informação circulada.
UDP, ou User Datagram Protocol, foi o tipo de transmissão escolhida devido a simplicidade do mesmo, não possuindo verificação de pacotes, como ordenamento ou chegada. Tais funcionalidades não foram implementadas pela aplicação "Chat" desenvolvida, porém devido ao conteúdo das mensagens serem pequenos e ser somente um projeto acadêmico não sentiu-se necessário ter estas funcionalidades de verificação de problemas.
Multicast, é um grupo de comunicação onde a informação endereçada a um determinado grupo é obtida simultaneamente pelos integrantes do mesmo e apenas para estes integrantes, não afetando outras partes da rede.
Obrigatoriamente deve-se obter o TKinter para utilizar a versão com interface, para tal utilizar o comando "sudo apt-get install python-tk"
Para executar com a GUI deve-se utilizar o comando "python gui_p2pchat.py". Para executar sem a GUI deve-se utilizar o comando "python p2pchat.py"
Utilizando a interface será aberta uma janela pedindo o nick do usuário. Apoś, aparecerá a janela do chat, que é dividida conforme a legenda:
-
Exibição das Mensagens da conversa;
-
Caixa de texto para envio das mensagens;
-
Botão para envio da mensagem;
-
Lista dos usuários disponíveis;
-
Grupos ao qual participa;
-
Botão utilizado para se criar um grupo;
Para conversar com usuário, deve-se clicar no seu nome, na região 4;
Para selecionar um grupo, deve-se escolher o mesmo na região 5;
Ao se clicar no botão Criar grupo, deverá ser informado o nome do grupo desejado. Após, será exibida uma lista com os usuário disponiveis. Deve-se marcar cada cliente que participará do grupo.
Para tornar o trabalho apresentável dentro do prazo de entrega optou-se por deixar algumas limitações dentro do programa.
São elas:
-
Não podem haver usuários com o mesmo Nick;
-
Não podem grupos com o mesmo nome;
-
Não podem haver grupos com nomes de nicks e vice-versa;
-
Não é possível enviar mensagens fora do padrão ascii;
-
Não é possível remover um grupo já existente;
-
Não é possível remover um usuário de um grupo;
-
Não há tratamento para verificar se o IP Multicast de um grupo já está em uso, portanto há chance de um IP colidir, porém este evento é raro, visto que existem diversos IP's para tal finalidade.