غرفة دردشة HLW - أداة دردشة متعددة الأشخاص تم تطويرها باستخدام تقنية برمجة شبكة Linux C
التثبيت والنشر
git clone https://github.com/fujie-xiyou/chat_room.git
ثم قم باستيراد chat_room.sql
إلى قاعدة البيانات الخاصة بك، وقم بتعديل معلومات قاعدة البيانات في config.json
وأخيرًا، إذا لم يتم الإبلاغ عن أي خطأ في ./chat_room_srv
، فسيبدأ الخادم بنجاح.
ثم قم بتعديل عنوان الخادم في config.json وأخيرًا ./chat_room_cli
يرجى تسجيل حساب أولا
فيديو تجريبي
عرض فيديو لغرفة الدردشة
نظرة عامة على المشروع
- هذا المشروع عبارة عن غرفة دردشة ذات واجهة شخصية تم تطويرها باستخدام تقنية برمجة شبكة Linux C. تشمل الوظائف الأساسية تسجيل المستخدم وتسجيل الدخول وإضافة الأصدقاء والدردشة الخاصة وإنشاء دردشة جماعية ودعوة الأصدقاء للانضمام إلى الدردشة الجماعية والدردشة الجماعية وعرض سجل الدردشة. نقل الملف.
تصميم المشروع
- تم تصميم هذا المشروع على أساس نموذج C/S وينقسم إلى قسمين: العميل والخادم، ويرتبط العميل مباشرة بالخادم ويتبادل البيانات مع الخادم في كلا الاتجاهين وإرسالها إلى المستخدم المستهدف، يتم أيضًا إكمال جميع أعمال ثبات البيانات على جانب الخادم.
- تم تصميم رمز المشروع باستخدام فكرة الطبقات، ويتكون العميل من طبقة الواجهة وطبقة منطق الأعمال (طبقة الطلب)، ويتكون الخادم من طبقة منطق الأعمال وطبقة الاستمرارية.
- تصميم قاعدة البيانات
- عندما تم تطوير هذا المشروع، لم أدرس بشكل منهجي الدورات التدريبية المتعلقة بقاعدة البيانات، ولكن لاحقًا عندما راجعت تصميم قاعدة البيانات لهذا المشروع، وجدت أنه يتماشى مع نموذج BC.
- تظهر بعض الأمثلة على قاعدة بيانات المشروع في الشكل
- تصميم وظيفة نقل الملفات نظرًا لأن العميل والخادم لهذا المشروع يستخدمان JSON لتفاعل البيانات، فإن المعالجة الخاصة مطلوبة لنقل الملفات، لذا إليك مقدمة موجزة عن طريقة معالجة نقل الملفات.
- كما هو موضح في الشكل، بعد قيام المستخدم بإدخال اسم الملف المراد إرساله، يستخدم النظام استدعاء النظام open() لفتح الملف، ثم يستخدم استدعاء النظام read() لقراءة محتوى الملف بالبايتات المحددة، و يسجل القيمة المرجعة للقراءة بحجم حقل حزمة البيانات، ثم استخدم base6 لقراءة محتوى الملف 4. قم بتحويل الكود وتسجيل النتيجة في حقل البيانات لحزمة البيانات، ثم أرسل حزمة البيانات إلى جهاز الاستقبال، ثم احكم على ما إذا كان قد تم إرسال جميع الملفات بناءً على حجم قيمة إرجاع القراءة القيمة أصغر من معلمة حجم القراءة، ثم أغلق الملف، وإلا استمر في القراءة وتحويل الترميز والإرسال.
- بعد استلام حزمة الملف، يقوم المتلقي بفك تشفير البيانات الموجودة في البيانات إلى ملف ثنائي، ثم يقوم بإلحاق البيانات الموجودة في برتقالي، الذي يخزن نتيجة تحويل البيانات إلى الملف وفقًا لقيمة الحجم.