Trabalho final para a cadeira de Sistemas Operacionais 2, do professor Alberto Egon Schaeffer Filho. O objetivo é implementar um clone do Dropbox, que faz sincronização dos arquivos de usuários conectados em vários dispositivos, numa arquitetura cliente-servidor.
Os clientes devem se conectar no ip do servidor eleito, na porta 12345
.
Os servidores precisam de um arquivo de configuração para funcionar. Ele deve estar no current working dir
, possuir o nome config.toml
, onde deve haver uma variável servers
que é um vetor de objetos do tipo ip: string, port: number
. O arquivo deve ser formatado conforme a especificação TOML.
Exemplo de arquivo de configuração:
servers = [
{ ip = "123.321.123.321", port = 123 },
{ ip = "127.0.0.1", port = 456 },
{ ip = "34.79.255.6", port = 789 },
]
Para inicializar, basta iniciar o executável do servidor com um índice que corresponde ao vetor. Desta forma, tomando o exemplo acima, ./server 1
inicia o servidor com no ip 127.0.0.1
, na porta 456
. Note que esse índice também será a id do servidor, que é contabilizada no processo de eleição.