Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nadjiel/py-chat
Chat em linha de terminal feito com o uso de Sockets em Python.
https://github.com/nadjiel/py-chat
chat protocol python socket terminal
Last synced: 4 days ago
JSON representation
Chat em linha de terminal feito com o uso de Sockets em Python.
- Host: GitHub
- URL: https://github.com/nadjiel/py-chat
- Owner: nadjiel
- License: mit
- Created: 2024-07-29T13:08:23.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-08-09T21:03:42.000Z (5 months ago)
- Last Synced: 2024-11-08T00:44:29.837Z (about 2 months ago)
- Topics: chat, protocol, python, socket, terminal
- Language: Python
- Homepage:
- Size: 64.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
PyChat 🐍
Chat em linha de terminal com Sockets em Python.
PyChat é um chat em linha de terminal feito em python com o intuito de praticar os conceitos de sockets e threads.
Esse projeto foi realizado como um trabalho da disciplina de Sistemas Distribuídos na faculdade de Análise de Sistemas.
Ele está bem documentado e é relativamente simples então se você quer aprender mais sobre sockets em Python recomendo dar uma olhada no código.Foi-se estabelecido que esse chat deveria seguir um protocolo pré estabelecido de troca de mensagens.
Este protocolo está descrito melhor em sua própria seção abaixo.## 👇 Acesso
Se quiser executar o código para experimentá-lo, pode baixar o repositório e rodar, respectivamente `server.py` e `client.py` (você vai precisar ter instalado o Python).
Note que ambos precisam de um `endereço` e `porta` onde rodar que podem ser passados por seus respectivos parâmetros, mas para saber mais sobre eles basta passar o argumento
`-h` ou `--help` quando executar qualquer um dos scripts.## 🧾 O protocolo
### Início da conexão
A primeira mensagem que o cliente deve mandar para o servidor é:```
!nick
```A partir daí o servidor deve responder com os usuários conectados no momento:
```
!users N user1 user2 ... userN
```Se a primeira mensagem do cliente não for a estabelecida previamente, ele deve ser desconectado.
### Mudança de nome de usuário
Os clientes devem poder mudar seu nickname através do comando:
```
!changenickname
```O servidor deve responder a isso com a seguinte mensagem para todos os clientes conectados:
```
!changenickname
```### Cutucada
Por último, os clientes devem ser capazes de cutucar uns aos outros com:
```
!poke
```A isso o servidor deve responder para todos os usuários conectados com:
```
!poke
```## ✍️ Autor
Este projeto foi feito por [@Nadjiel](https://github.com/Nadjiel).