Skip to content

JPedroCh/chat-bidirecional

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 

Repository files navigation

Projeto de pesquisa - Criando ambientes virtuais de conversação com uso system call select()

Disciplina: FGA0211 – Fundamentos de Redes de Computadores
Semestre: 2023.1
Curso: Engenharia de Software
Professor: Fernando William Cruz
Alunos: João Pedro Alves da Silva Chaves (180123203) e Lucas da Cunha Andrade (180105256)

Como executar

Para compilar o código:

  gcc select.c -o select

Para executar o código:

  ./select <endereço IP> <porta>

Ex:

  ./select 127.0.0.1 8000

Funcionamento

Servidor

Após iniciar a execução do programa, alguns comandos estão disponíveis para o servidor:

  • /list: Lista as salas disponíveis com a quantidade atual de usuários na sala e o limite dela.
  • /users : Lista os usuários de uma sala, porém é necessário enviar o id da sala.
  • /create: Cria uma nova sala, esse comando é dividido em 2 etapas:
    • Definição do nome da sala
    • Definição do número máximo de usuários da sala
    • (Opcional) Definir uma senha para entrar na sala. Caso não precise de uma senha basta deixar vazio
  • /delete: Exclui uma sala pelo id dela, o qual deve ser informado no passo seguinte ao comando.
    • Definição da sala a ser excluída
  • /exit: Finaliza o programa que está sendo executado.
  • /help: Lista os comandos disponíveis para o servidor.

Cliente

Para conectar ao servidor basta executar:

  telnet <endereço IP> <porta>

Ex:

  telnet 127.0.0.1 8000

Após a conexão é necessário informar o nome do usuário:

  • /name <nome do usuário>: Define o nome do usuário conectado. Após a definição os seguintes comandos se tornam disponíveis:
  • /list: Lista as salas disponíveis com a quantidade atual de usuários na sala e o limite dela.
  • /join <id da sala> <senha>: Troca o usuário de sala, sendo redirecionado para a sala indicada pelo id. Caso a sala escolhida possua senha é necessário informar a senha após o id da sala.
  • /leave: Redireciona o usuário para a sala principal(lounge).
  • /exit: Desconecta o cliente.
  • /help: Lista os comandos disponíveis para o cliente/usuário.

Para se comunicar com outros usuários basta digitar a mensagem e clicar "enter". As mensagens enviadas por você não terão um nome de usuário ao lado esquerdo, porém as mensagens enviadas por outros usuários serão identificadas seguindo o padrão:

  joao: Oi
  Oi
  joao: Tudo bem?
  Bem e voce?
  joao: Bem

OBS: as mensagens só são enviadas para os usuários que estão na mesma sala.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages