Realisieren Sie die Text-Chat-Kommunikation zwischen zwei Hosts. Die Kommunikation erfolgt in einer IPv6-Umgebung und umfasst Anmelde- und Registrierungsfunktionen, Punkt-zu-Punkt-Chat, Gruppenchat und andere Funktionen.
UDP ist ein verbindungsloses Protokoll. Die Quelle und das Terminal stellen vor der Datenübertragung keine Verbindung her, sondern holen sich die Daten einfach von der Anwendung und senden sie so schnell wie möglich an das Netzwerk.
Die wichtigsten auf Kommunikationsprotokollebene verwendeten Methoden sind:
socket([family[, type[, proto]]])
bind(address: Union[_Address, bytes])
sendto(data, address,)
recvfrom(bufsize, flags,)
Bei der Programmierung wird eine Datenbank benötigt, um den Benutzernamen, das Passwort, den Status, die IP-Adresse und den Port des Benutzers zu speichern. Bei der Auswahl der Datenbank wurde die SQLite3-Lightweight-Datenbank verwendet, um die Datenbankmigration usw. zu erleichtern.
Funktionsname | Funktion |
---|---|
init(selbst) | Wird zum Erstellen und Öffnen von Datenbanken verwendet |
select_all(self) | Wird verwendet, um alle Benutzerinformationen in der entsprechenden Tabelle der Datenbank abzurufen |
registrieren (selbst, Benutzername, Passwort, IP, Port) | Wird während der Registrierung aufgerufen, um Benutzerinformationen hinzuzufügen |
search_username(selbst, Benutzername) | Finden Sie Benutzerinformationen basierend auf dem Benutzernamen |
login_success(selbst, Benutzername, IP, Port) | Ändern Sie nach erfolgreicher Anmeldung die Benutzerstatusinformationen in der Datenbank |
login_check(selbst, Benutzername, Passwort, IP, Port) | Wird verwendet, um beim Anmelden zu überprüfen, ob Benutzername und Passwort korrekt sind |
logout_success(selbst, Benutzername) | Ändern Sie den Status des Benutzers, wenn sich der Benutzer abmeldet |
db_close(self) | Datenbank schließen |
Geben Sie das Verzeichnis ein, in dem sich der Code auf den beiden Hosts befindet, die kommunizieren können, und führen Sie python3 Client.py
bzw. python3 Server.py
aus. Der Client kann je nach Bedarf mehrere Server öffnen, der Server kann jedoch nur einen öffnen. Beim Starten des Servers wird die Datenbank geöffnet.
Treffen Sie eine Auswahl gemäß den Eingabeaufforderungen, um verschiedene Funktionen zu erreichen. Im Peer-to-Peer-Chat kann jede Partei den Chat durch Senden von END schließen und die andere Partei kann entsprechend den Aufforderungen bestätigen. Das Implementierungsprinzip des Gruppenchats ist ähnlich, und auch der Ablauf des Tests ist ähnlich.