Menyadari komunikasi obrolan teks antara dua host. Komunikasi dilakukan dalam lingkungan IPv6 dan menyelesaikan fungsi login dan registrasi, obrolan point-to-point, obrolan grup dan fungsi lainnya.
UDP adalah protokol tanpa koneksi. Sumber dan terminal tidak membuat koneksi sebelum mengirimkan data. Ketika ingin mengirimkan, ia hanya mengambil data dari aplikasi dan melemparkannya ke jaringan secepat mungkin.
Metode utama yang digunakan pada tingkat protokol komunikasi adalah:
socket([family[, type[, proto]]])
bind(address: Union[_Address, bytes])
sendto(data, address,)
recvfrom(bufsize, flags,)
Dalam proses pemrograman, diperlukan database untuk menyimpan nama pengguna, kata sandi, status, alamat IP pengguna, dan port. Saat memilih database, database ringan SQLite3 digunakan untuk memfasilitasi migrasi database, dll.
nama fungsi | Fungsi |
---|---|
init(diri) | Digunakan untuk membuat dan membuka database |
pilih_semua(diri) | Digunakan untuk mendapatkan semua informasi pengguna di tabel database yang sesuai |
daftar (diri, nama pengguna, kata sandi, ip, port) | Dipanggil saat pendaftaran untuk menambahkan informasi pengguna |
pencarian_nama pengguna(diri, nama pengguna) | Temukan informasi pengguna berdasarkan nama pengguna |
login_success(diri, nama pengguna, ip, port) | Setelah login berhasil, ubah informasi status pengguna di database |
login_check(diri, nama pengguna, kata sandi, ip, port) | Digunakan untuk memeriksa apakah nama pengguna dan kata sandi sudah benar saat login |
logout_success(diri, nama pengguna) | Mengubah status pengguna saat pengguna logout |
db_close(diri) | Tutup basis data |
Masuk ke direktori tempat kode berada pada dua host yang dapat berkomunikasi, dan jalankan masing-masing python3 Client.py
dan python3 Server.py
. Klien dapat membuka beberapa server sesuai kebutuhan, namun server hanya dapat membuka satu. Saat memulai server, database akan dibuka.
Tentukan pilihan sesuai petunjuk untuk mencapai fungsi yang berbeda. Dalam obrolan peer-to-peer, salah satu pihak dapat menutup obrolan dengan mengirimkan END, dan pihak lainnya dapat mengonfirmasi sesuai petunjuk. Prinsip penerapan obrolan grup serupa, dan proses menjalankan pengujian juga serupa.