Protocole #6
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Comment faire communiquer les machines ensemble ?
Les différentes machines du réseau, une fois les étapes de #4 implémentés, peuvent maintenant se voir ensemble dans un réseau.
A présent, nous souhaitons définir comment ces appareils vont communiquer.
Des packets seront transmis entre les appareils. Ces packets contiendrions un numéro de "channel", permettant de facilement identifier quels packets nous sont destiné ou non, un mode d'encryption définissant l'encryption du reste du packet, pouvant être déchiffré à l'aide de clé ayant été échangé dans de précédente communication, et un type d'évènements définissant l'objectif du reste du packet (recherche d'autre appareil, envoie d'un packet audio, etc...).
Dans le reste du packet chiffré, on peut retrouver des données additionnels.
Etablissement des rôles
Une machine seule est présente dans le réseau. Après n'avoir trouvé aucun autre appareils dans ce réseau, elle va s'auto déclaré comme étant un serveur
Si toutes les machines n'ont pas défini de serveur, alors une élection doit avoir lieu entre les machines capables d'émettre sur le réseau (utiliser le ping total sur toutes les autres machines ?)
Une nouvelle machine est intégré à un réseau existant. Un serveur y est déjà présent, elle s'y connecte donc comme un client.
Le serveur ne répond plus au client. Le client passe alors de nouveau en mode indéfini.
Voici un simple snippet d'exemple pouvant montrer le fonctionnement de la main loop du thread émetteur :