Esta aplicação implementa uma solução de videoconferência descentralizada utilizando comunicação por sockets. O sistema permite que usuários se registrem em um servidor central, consultem a lista de nós cadastrados e estabeleçam conexões diretas Peer-to-Peer (P2P) para comunicação de áudio e vídeo.
- Os clientes podem se registrar no servidor informando um nome único, IP e porta para receber chamadas.
- O servidor mantém uma tabela dinâmica com os usuários conectados e exibe mensagens de confirmação ao registrar novos clientes.
- Os clientes podem consultar a lista de usuários registrados e obter os endereços IP e portas de outros participantes.
- Caso um usuário já esteja cadastrado, o servidor informa essa condição.
- Os clientes podem solicitar a remoção do registro, encerrando sua conexão com o servidor.
- O servidor responde com uma mensagem de encerramento quando um cliente desconecta.
- Os clientes podem solicitar videochamadas para outros usuários através de um protocolo de convite semelhante ao SIP.
- O destinatário da chamada pode aceitar ou recusar a solicitação.
- Caso a chamada seja aceita, os fluxos de áudio e vídeo são iniciados automaticamente.
- O servidor gerencia as chamadas, fornecendo informações sobre as portas utilizadas para transmissão.
- A aplicação conta com métodos para encerramento da transmissão e desconexão dos usuários.
-
Clone o repositório:
~$ git clone https://github.com/SerranoZz/trabalho-redes2.git
-
Vá para o diretório do projeto:
~$ cd trabalho-redes2
-
Execute o código do servidor:
~$ python server.py
-
Execute o código do cliente:
~$ python client.py
Este trabalho foi realizado em dupla com o Lucas Serrano