![]() |
|
مشكلتين في أرسال بأداة Socket - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : مشكلتين في أرسال بأداة Socket (/showthread.php?tid=8102) |
مشكلتين في أرسال بأداة Socket - Sajad - 24-03-13 السلام عليكم بارك الله فيك اخي العزيز انا كتبت الكلاس الذي يحتوي على البيانات التي عملت لها Serialize في نفس المقال ومن ثم حولته الى ملف dll واستخدمته في كلا الطرفين فلا يوجد فيها اي اجراء فقط بيانات (Data members) هذا هو الكلاس الذي استخدمته: PHP كود : using System;اخي الكريم فكرتك جميلة تشكر عليها بارك الله فيك لكن انا كنت بصدد توضيح كيفية ارسال فئة (Class) بكل ما فيها من بيانات بشتى الانواع او اجراءات الى الطرف الاخر ومن ثم تحويلها الى نفس نوع البيانات المرسلة لانه حسب رأي المتواضع ليس من المنطقي اسناد الرقم 1 الى متغير نصي حتى لو كان ذلك ممكنا باستخدام الCasting , وكنت ابين كيفية تحويل الفئة الى سلسلة من الBytes باستخدام خاصية الSerialize حيث يمكن ايضا خزنها في قاعدة البيانات (تخيل انك تستطيع خزن معلومات عدة حقول ومن عدة انواع في حقل واحد وعند ارجاعها تسند البيانات كل حسب نوعها). إقتباس :في مثالك السابق لايقبل الإرسال إلى من نوع Object وانا أبي ارسل من نوع Byte أما بخصوص ذلك يمكنك تعريف متغير او مصفوفة من نوع byte في داخل الClass ومن ثم ارسال الClass الى الطرف المقابل وما شاءالله كما ارى انك اطلقت العنان لمخيلتك وابدعت في هذا الموضوع فبارك الله فيك وأتمنى لك التوفيق ان شاءالله
مشكلتين في أرسال بأداة Socket - Easy4ever - 24-03-13 وبارك الله فيك sajad كتب :(تخيل انك تستطيع خزن معلومات عدة حقول ومن عدة انواع في حقل واحد وعند ارجاعها تسند البيانات كل حسب نوعها). نعم أخي وهذا المفيد من الفكره بحيث اني أجمع كل البيانات بغض النظر عن عدد الصفوف والأعمدة لو كانت مصفوفه إيضا خزن قاعدة بيانات بأكملها في حقل واحد ولاكن السؤال هنا إللي شيب برأسي هل من كود يقوم بأرسال Byte وأستقبال Byte ؟ لان جميع الأمثله تقوم بأستقبال في NetworkStream وانا أريد أستقبال بـ Byte وشكرا مشكلتين في أرسال بأداة Socket - Sajad - 24-03-13 السلام عليكم بصراحة لم أقرأ ولم اسمع سوى الاستقبال بالSocket او الNetStream فلا اعرف ان كان هنالك من طريقة لذلك؟ طيب لماذا مصر على هذه الطريقة؟ مشكلتين في أرسال بأداة Socket - Easy4ever - 24-03-13 sajad كتب :السلام عليكم طيب هل يوجد طريقه بتحويل من NetStream إلى Byte ؟ sajad كتب :طيب لماذا مصر على هذه الطريقة؟ لاني أقوم بعمل مشروع يقوم بإرسال مصفوفه متغيرت الحجم بالمره الأولى تكون عمودين و 10 صفوف والمره الثانيه تكون عمودين 100 صف لهذا أريد أن أقوم بتحويله إلى Byte واستقبله Byte حتى أقوم بإرجاعه كما كان في حال أستلمه كـ NetworkStream ما أقدر أقرأ البيانات لو مافي طريقه أريد فكره أستطيع أرسال المصفوفه المتغيره بدون إي مشاكل
مشكلتين في أرسال بأداة Socket - Sajad - 24-03-13 السلام عليكم اخي العزيز هنالك دالة الRead للNetworkstream تقوم بتحويل البيانات المستلمة الى مصفوفة من الBytes جرب ذلك مشكلتين في أرسال بأداة Socket - Easy4ever - 24-03-13 أخوي أبشرك وأخيرا قدرت أستلم Byte بدون اللجوء إلى NetStream بهذا الكود PHP كود : Dim i As Integer = Socket1.ReceiveBufferSize - 1شرح الكود في البداية قمت بتخزين طول الرسالة القادمه في Socket1 ومن ثم عرفت متغير من نوع Byte بحجم i وهو الذي يحتوي على حجم الرسالة ومن ثم بكل سهوله اسم السوكت نقطه receive وبين قوسين متغير من نوع Byte إللي عرفناه ![]() انا بصراحه أرتفع ضغطي بزياده يوم عرفت انوا الحل بهذا البساطه واليسر :mad: المهم حلينا جزء وباقي الجزء الأخر وهو أرسال تعليمه تشير للـ Object الجاي هذي شكلها بتطلع بسيطه وترفع ضغطي ههههههههههههههههه
مشكلتين في أرسال بأداة Socket - Sajad - 24-03-13 الحمد لله نعم هذه الطريقة صحيحية لكن باستخدام الsocket ان شاءالله توفق وتنجح في مشروعك
مشكلتين في أرسال بأداة Socket - Easy4ever - 24-03-13 sajad كتب :الحمد لله نعم هذه الطريقة صحيحية لكن باستخدام الsocket تسلم أخوي وإن شاء الله تتوفق انت بدنيتك وآخرتك :o أخوي هل لديك حل لمشكلة أرسال تعليمه مع الرساله مشكلتين في أرسال بأداة Socket - Sajad - 24-03-13 السلام عليكم أجمعين ان شاءالله ![]() هل تقصد مثل تنبيه ينذر بقدوم رسالة مثلا؟ هل هذا الذي تقصده؟ عندي فكرة اولا قم بارسال التعليمة ومن ثم أخر عملية ارسال المصفوفة عن طريق الsleep للThread بمدة معينة وبعد ذلك قم بارسال المصفوفة أما عند الاستلام فيكون مثل ال(First in - First out) يعني اولا استلم التعليمة ومن ثم الرسالة وأعتقد يكون ذلك فقط عن طريق الBinaryReader والBinaryWriter انظر الى هذا المقال http://vb4arb.com/vb/showthread.php?27-Moving-Complex-Objects-Across-The-Network وانظر انني قمت بارسال الحجم اولا ومن ثم ارسال البيانات واستلمت الحجم اولا ثم البيانات يمكن ان تستفيد من هذه الفكرة ان شاءالله مشكلتين في أرسال بأداة Socket - Easy4ever - 24-03-13 آمين لا أخي أقصد الأن مثلا في برنامجي أقوم بإرسال نوعين من الرسائل النوع الأول أقوم بإرسال سجل عبر إدخالها بمصفوفه مثل ما ذكرنا سابقا والنوع الثاني أقوم بأرسال أمر لأتحكم بالطرف الأخر أبي عند أرسال الرساله أرسل معها تعليمه مثلا كلمة ( File ) أو كلمة ( Command ) وعند الأستقبال يقرأ بالأول التعليمه إذا وجدها كلمة ( File ) تلقائي يستقبلها في مصفوفه مناظره لها ويعرضها أما كانت التعليمه كلمة ( Command ) تلقائي يروح Sub الأوامر Sub الأوامر فيه كلمه ومناظره أمر معين ياليت وضحت الفكره لو ما وضحت قول لي وسأشرح بشكل أكبر |