Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

My fantastic protocol #26

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions specs/PROTOCOL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# RES - Labo3 - Spécification du protocol
> Auteur : Quillasp (c'est moi)

### What transport protocol do we use?
TCP

### How does the client find the server (addresses and ports)?
Adresse ip + port 5190

### Who speaks first?
Le client

### What is the sequence of messages exchanged by the client and the server? (flow)
* client téléphone serveur : « steuplé, tu peux m'faire ça ? »,
* serveur répond client : « ouais, pad'souci ! »,
* serveur envoie réponse,
* client affiche réponse

### What happens when a message is received from the other party? (semantics)
* serveur traite commande client
* serveur envoie retour :
* si c'est bon : «Tiens, c'est tout bon : <réponse>. »
* si c'est pas bon : « euh… j'pas compris »
* client affiche réponse serveur

### What is the syntax of the messages? How we generate and parse them? (syntax)
`plsdodat <operand1> <operand2> <operator>`

* s'il n'y a pas `plsdodat`, le serveur refuse l'ordre (faut toujours dire « sivoplé »),
* si `<operand1>` et `<operand2>` ne sont pas des chiffres, le serveur va aussi « hurler »,
* `<operator>` doit être soit :
* `+` pour l'addition,
* `-` pour la soustraction,
* `*` pour la multiplication,
* `/` pour la division,
* `%` faut pas déconner.

Contrairement à Fortran (j'sé plus lequel), l'espace est déterminant.

### Who closes the connection and when?
Le client, quand il dira `kthx` (faut toujours dire « merci »).