سؤال

وأنا عندي بعض الأسئلة حول إرسال الصور عبر.

وكيف يمكنني التعامل مع أنواع مختلفة من الملفات، JPEG، PNG، الخ.

إذا كان الملف كبير، وافي لاستخدام أرقام تسلسل ... ولكن أنا لا أعرف كيف لوقف recving إذا أنا لا أعرف عدد أرقام التسلسل.

ومعرفتي بنقلها الصور / الملفات هي القادمة الى لا شيء. لم يسبق لي أن تبرمج أي شيء مثل هذا من قبل. كان يأمل في الحصول على بعض النصائح والحيل =)

وشكرا جزيلا.

وأنا أيضا باستخدام QT، اذا كان ذلك يساعد ضعي على الإطلاق.

هل كانت مفيدة؟

المحلول

إذا كنت تستخدم مقبس TCP، أنت لا تحتاج الى أرقام التسلسل، لأن TCP يضمن بالفعل أن تصل البيانات في نفس الترتيب كما أنها حيثما إرسال. فقط إرسال البيانات، وعندما يتم إغلاق الاتصال. اختياريا يمكنك استخدام بعض أنواع محددة ذاتيا من رأس الحزمة التي تعطي معلومات إضافية (على سبيل المثال إذا كنت ترغب في إرسال ملفات متعددة على اتصال واحد).

نصائح أخرى

لصور على الأقل، على افتراض انك تستخدم كيماغي، يمكنك استخدام QDataStream لتحويل كيماغي الخاص بك إلى QByteArray، والتي يمكن بعد ذلك أن يكتب إلى كائن QTcpSocket باستخدام الكتابة (). فمن الممكن أن تسلسل حد كبير أي من أنواع البيانات كيو تي في QByteArray باستخدام هذا الأسلوب.

لملفات عامة، QIODevice (قاعدة لQFile، من بين أمور أخرى) يوفر وظائف قراءة مثل readAll ()، والتي سوف قراءة الملف بأكمله إلى QByteArray كنت على استعداد لإرسال.

وسوف تجد عددا من الأمثلة الشبكات المتضمنة توزيع كيو تي. انظر مساعد كيو تي -> المحتويات -> دروس وأمثلة -> الشبكة لمزيد من المعلومات

ونقل لهم كما تفعل مع أي بيانات ثنائية أخرى. send()، recv(). أو أيهما التجريد يوفر كيو تي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top