https://github.com/mrrodrigo/p2p-java
This repository consists of the implementation of a basic P2P system, which it must be organized as a centralized architecture.
https://github.com/mrrodrigo/p2p-java
Last synced: about 1 month ago
JSON representation
This repository consists of the implementation of a basic P2P system, which it must be organized as a centralized architecture.
- Host: GitHub
- URL: https://github.com/mrrodrigo/p2p-java
- Owner: mrRodrigo
- Created: 2019-09-14T03:35:03.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-09-28T02:32:48.000Z (over 5 years ago)
- Last Synced: 2025-01-24T11:44:43.801Z (3 months ago)
- Language: Java
- Homepage:
- Size: 33.2 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# P2P-Java
Client
```java AppClient 127.0.0.1 client01 127.0.0.1 "./share" ```
Server
``` rm -rf *.class && javac *.java && java AppServer 127.0.0.1 ```
ou
``` java AppServer 127.0.0.1 ```
## Requisitos
- Os peers devem se registrar no servidor para poderem realizar a troca de
informações.
- Durante o registro, um peer informa os recursos disponíveis (use um
diretório com alguns arquivos, e calcule a hash de cada um, a ser passada
ao servidor). Para cada arquivo, forneça ao servidor uma string ou o nome
do arquivo e sua hash.
- O servidor associa cada recurso em uma lista, juntamente com o IP do
peer onde está o recurso.
- Os peers podem solicitar uma lista de recursos (nomes e hashes) ou um
recurso específico ao servidor.
- Ao solicitar um recurso ao servidor, o peer recebe a informação sobre sua
localização (outro peer) e deve então realizar essa comunicação
diretamente com o mesmo.
- O servidor é responsável por manter a estrutura da rede de overlay. Para
isso os peers devem realizar solicitações periódicas ao servidor (a cada 5
segundos). Caso um peer não envie 2 solicitações seguidas a um servidor,
o mesmo é removido da lista.