Réalisez une communication par chat textuel entre deux hôtes. La communication est effectuée dans un environnement IPv6 et complète les fonctions de connexion et d'enregistrement, la discussion point à point, la discussion de groupe et d'autres fonctions.
UDP est un protocole sans connexion. La source et le terminal n'établissent pas de connexion avant de transmettre des données, lorsqu'il souhaite transmettre, il récupère simplement les données de l'application et les jette sur le réseau le plus rapidement possible.
Les principales méthodes utilisées au niveau du protocole de communication sont :
socket([family[, type[, proto]]])
bind(address: Union[_Address, bytes])
sendto(data, address,)
recvfrom(bufsize, flags,)
Dans le processus de programmation, une base de données est nécessaire pour stocker le nom d'utilisateur, le mot de passe, le statut, l'adresse IP et le port de l'utilisateur. Lors de la sélection de la base de données, la base de données légère SQLite3 a été utilisée pour faciliter la migration de la base de données, etc.
nom de la fonction | Fonction |
---|---|
init (soi) | Utilisé pour créer et ouvrir des bases de données |
select_all (soi) | Utilisé pour obtenir toutes les informations utilisateur dans la table correspondante de la base de données |
s'inscrire (moi, nom d'utilisateur, mot de passe, adresse IP, port) | Appelé lors de l'inscription pour ajouter des informations sur l'utilisateur |
search_username (soi, nom d'utilisateur) | Rechercher des informations utilisateur en fonction du nom d'utilisateur |
login_success (soi, nom d'utilisateur, adresse IP, port) | Après une connexion réussie, modifiez les informations sur le statut de l'utilisateur dans la base de données |
login_check (soi, nom d'utilisateur, mot de passe, adresse IP, port) | Utilisé pour vérifier si le nom d'utilisateur et le mot de passe sont corrects lors de la connexion |
logout_success (soi, nom d'utilisateur) | Changer le statut de l'utilisateur lorsque l'utilisateur se déconnecte |
db_close (soi) | Fermer la base de données |
Entrez le répertoire où se trouve le code sur les deux hôtes pouvant communiquer et exécutez respectivement python3 Client.py
et python3 Server.py
. Le client peut ouvrir plusieurs serveurs selon ses besoins, mais le serveur ne peut en ouvrir qu'un seul. Au démarrage du serveur, la base de données sera ouverte.
Effectuez des sélections en fonction des invites pour réaliser différentes fonctions. Dans le chat peer-to-peer, chaque partie peut fermer le chat en envoyant END, et l'autre partie peut confirmer selon les invites. Le principe de mise en œuvre du chat de groupe est similaire et le processus d'exécution du test est également similaire.