تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلتين في أرسال بأداة Socket
#21
أخوي قمبت بالتجربه ولاكن لم تنجح معي

أنظر للمرفق قمت برفع لك المثال الذي أنشأته

والمحاوله التي قمت به أنظر إليه


الملفات المرفقة
.zip   SendAnyObject.zip (الحجم : 146.14 ك ب / التحميلات : 35)
Big Grin
<---------------------------------------------------------------->

الرد }}}
تم الشكر بواسطة:
#22
السلام عليكم

تفضل المثال في المرفقات بعد التعديل

لكن يجب ان تضغط عرض النص مرتين لكي يعرض لك النص (ربما يكون السبب تأخير وصول البيانات)


الملفات المرفقة
.rar   SendAnyObject.rar (الحجم : 133.2 ك ب / التحميلات : 31)
الرد }}}
تم الشكر بواسطة:
#23
خطير جدا
أزل سطر التالي

System.Threading.Thread.Sleep(1000)

لان الأمر إللي قبله
Application.DoEvents()

يلبي بالغرض بحيث لا ينتقل إلى الأمر الأرسال التالي حتى ينتهي من الأول ويستقبل أنه تم الأستلام لانك تتعامل مع بروتوكول TCP/IP Wink

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

Cross-thread operation not valid: Control 'TextBox1' accessed from a thread other than the thread it was created on.

وكأنه لا يعترف بالـ TextBox1 نهائي
Big Grin
<---------------------------------------------------------------->

الرد }}}
تم الشكر بواسطة:
#24
السلام عليكم

اجعله في Invoke انظر الى المقال فانا تعاملت مع الInvoke لتلافي هذا الاستثناء
الرد }}}
تم الشكر بواسطة:
#25
فعلا أشتغل 100% Wink

سؤال أخير ونخلص من القصه كلها
هل المشكله هذي تحدث فقط مع التعامل بإدخال القيم في الأدوات ولا تحصل في جميع التغييرات على البرنامج

يعني لو أملك مثلا قاعدة بيانات
وأبيه إذا استلم الملف يقوم بإضافته إلى قاعدة البيانات تلقائي عن طريق كود الإضافه الشهير باستخدام ADO.Net
هل سيقبل عادي ولا لازم اسوي له مثل هذي الحركه
Big Grin
<---------------------------------------------------------------->

الرد }}}
تم الشكر بواسطة:
#26
[COLOR="#B22222"]السلام عليكم

اسف على التاخير

اخي الكريم هذه ليست مشكلة بالمعنى الدقيق وانما المقصود من الاستثناء أن البرنامج الرئيسي يعمل على Thread (مسلك) مستقل عن الThread الخاص باستقبال الرسالة لذا لا يجوز التداخل بين عمل الاثنين يعني كل Thread يجب أن يعمل بمعزل عن الاخر.

وهذا الشرح من المقال الاول الذي كتبته وتوجد في الصفحة الثالثة من قسم مقالات ال#C
إقتباس :اهم ملاحظة في طرف المستقبل هي استخدام دالة الInvoke الخاص باداة الTextbox لانشاء Delegate جديدة عن طريق الMethodInvoker ,حيث عند عدم انشاء delegate سيظهر Exception اثناء استقبال الرسالة لان الاداة التي نريد عرض الرسالة داخلها تعمل على مسلك آخر غير المسلك التي نعمل عليها لذا يجب فصله عن طريق دالة الInvoke وذلك بعمل delegate نضع داخلها الTextbox وذلك لعرض البيانات داخلها للحؤول دون ظهور استثناء يعرقل عمل البرنامج.

لذا لا يوجد أي مشكلة ان شاءالله[/COLOR]
الرد }}}
تم الشكر بواسطة:
#27
بارك الله فيك أخي الكريم
وجزاك الله خير


[SIZE=5]~ تم الحل ~
[/SIZE]
Big Grin
<---------------------------------------------------------------->

الرد }}}
تم الشكر بواسطة:
#28
[COLOR="#A52A2A"]السلام عليكم

الحمد لله اتمنى لك التوفيق ان شاءالله Smile[/COLOR]
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم