تحقيق اتصال الدردشة النصية بين مضيفين. يتم إجراء الاتصال في بيئة IPv6 ويكمل وظائف تسجيل الدخول والتسجيل والدردشة من نقطة إلى نقطة والدردشة الجماعية والوظائف الأخرى.
UDP هو بروتوكول بدون اتصال، ولا يقوم المصدر والمحطة بإنشاء اتصال قبل إرسال البيانات، فهو ببساطة يلتقط البيانات من التطبيق ويلقيها على الشبكة في أسرع وقت ممكن.
الطرق الرئيسية المستخدمة على مستوى بروتوكول الاتصال هي:
socket([family[, type[, proto]]])
bind(address: Union[_Address, bytes])
sendto(data, address,)
recvfrom(bufsize, flags,)
في عملية البرمجة، هناك حاجة إلى قاعدة بيانات لتخزين اسم المستخدم وكلمة المرور والحالة وعنوان IP الخاص بالمستخدم والمنفذ. عند اختيار قاعدة البيانات، تم استخدام قاعدة بيانات SQLite3 خفيفة الوزن لتسهيل ترحيل قاعدة البيانات، وما إلى ذلك.
اسم الوظيفة | وظيفة |
---|---|
الحرف الأول (النفس) | يستخدم لإنشاء وفتح قواعد البيانات |
اختر_الكل(ذاتي) | يستخدم للحصول على جميع معلومات المستخدم في الجدول المقابل لقاعدة البيانات |
التسجيل (الذاتي، اسم المستخدم، كلمة المرور، IP، المنفذ) | تم الاتصال به أثناء التسجيل لإضافة معلومات المستخدم |
search_username(النفس، اسم المستخدم) | ابحث عن معلومات المستخدم بناءً على اسم المستخدم |
تسجيل الدخول_النجاح (الذاتي، اسم المستخدم، IP، المنفذ) | بعد تسجيل الدخول بنجاح، قم بتغيير معلومات حالة المستخدم في قاعدة البيانات |
تسجيل الدخول_التحقق (الذاتي، اسم المستخدم، كلمة المرور، IP، المنفذ) | يستخدم للتحقق من صحة اسم المستخدم وكلمة المرور عند تسجيل الدخول |
logout_success(النفس، اسم المستخدم) | تغيير حالة المستخدم عندما يقوم المستخدم بتسجيل الخروج |
db_إغلاق (ذاتي) | إغلاق قاعدة البيانات |
أدخل الدليل الذي يوجد به الرمز على المضيفين اللذين يمكنهما التواصل، وقم بتنفيذ python3 Client.py
و python3 Server.py
على التوالي. يمكن للعميل فتح عدة خوادم حسب الحاجة، ولكن يمكن للخادم فتح خادم واحد فقط. عند بدء تشغيل الخادم، سيتم فتح قاعدة البيانات.
قم بإجراء التحديدات وفقًا للمطالبات لتحقيق وظائف مختلفة. في الدردشة من نظير إلى نظير، يمكن لأي من الطرفين إغلاق الدردشة عن طريق إرسال END، ويمكن للطرف الآخر التأكيد وفقًا للمطالبات. مبدأ تنفيذ الدردشة الجماعية مشابه، كما أن عملية إجراء الاختبار متشابهة أيضًا.