الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اجعل الWinsockk تعمل اتصال واستقبال في نفس النموذج

مغلق
بدأه Amir Imam في 10 يونيو 2007 · 11 رد · 1,153 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله

اتعلم حاليا التعامل مع اداة Winsock والتي تقوم بعملية النقل بين الاجهزة في الشبكة

ولكن ما لم اجد له جوابا حتى الان هو كيف اجعل الاداة ترسل وتستقبل في نفس النموذج

يعني : لما اشغل البرنامج وارسل رسالة تظهر في صندوق النص وكله تمام ولكن لما يكون في نسخة تانية شغالة من البرنامج متظهرش فيه الرسالة

عايز لما ارسل رسالة تظهر في كل نسخ البرنامج اللي شغالة

للتوضيح

انا عملت برنامج يرسل وبرنامج يستقبل تمام ازاي بقى اخلي في برنامج واحد يرسل ويستقبل

يارب تكونوا فهمتوني

وجزاكم الله خيرا

#2

أخي الكريم أكيد ماراح تطلع لك رسالة لأن الوينسوك يعمل إتصال واحد فقط والحل لهذة المشكلة بوضع أكثر من وينسوك.

google.gif

spamxk4.gif

petitionbanner17a.gif

Email : sao_-5000@hotmail.com

#3

بسم الله

ما شاء الله عليك

هي دي الفكرة اللي فكرت فيها وحطيت في البرنامج الواحد عدد 2 Winsock واحد يستقبل والتاني يرسل

بس الاستقبال والارسال بيبقى في نفس الفورم يعني نسخة البرنامج اللي شغالة مش بتستقبل الا من نفسها

جزاك الله خيرا

#4

ارجوا التوضيح اكثر انا لا افهمك

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#5

انا فهمت الفكرة مع اني شخص لا يعرف للونسوك و احتاج الى دروس لكن لا احد يساعدني مع الاسف

startingprogremmer.jpg
#6
اقتباس
ارجوا التوضيح اكثر انا لا افهمك

بسم الله

الاخ حريف

يعني دلوقتي انا لم احب اعمل برنامج يرسل رسالة عبر الشبكة لازم اعمل واحد يرسل وواحد يستقبل ؟

مينفعش اعمل برنامج يرسل ويستقبل زي الماسنجر كده ؟

انا لما عملت كده بقى البرنامج يستقبل من نفسه بس

اقتباس
انا فهمت الفكرة مع اني شخص لا يعرف للونسوك و احتاج الى دروس لكن لا احد يساعدني مع الاسف

يا اخ مبرمج مبتدأ عندي كتاب في الوينسوك لو عايزه ارفعهولك وهو اللي انا اتعلمت منه

#7

ممكن تزودنا بطريقة الارسال والاستقبال عن طريق Winsock التي قمت باستخدامها

وهل يمكن استخدامها لارسال ملف من نوع اكسل من موقع الى موقع آخر باتصال هاتفي فقط دون توفر انترنت

تحياتي...

#8

تعددت المواضيع

يمكنك ارسال واستقبال على نفس الخط بكتابة بروتوكول مناسب ينظم عملية تبادل البيانات

لكن فى حالة تبادل الملفات فيفضل وجود خط منفصل

انظر بروتوكول نقل الملفات فى توقيعى

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#9
اقتباس
ممكن تزودنا بطريقة الارسال والاستقبال عن طريق Winsock التي قمت باستخدامها

وهل يمكن استخدامها لارسال ملف من نوع اكسل من موقع الى موقع آخر باتصال هاتفي فقط دون توفر انترنت

تحياتي...

يمكن ارسال اى نوع من الملفات والشرح موجود فى كتاب التعامل مع الوين سوك لرغيد الطيب

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#10

بسم الله

يا اخ حريف برمجة

انا مش عايز نقل ملفات ولا بتاع انا عايز اعرف حاجة

لما ابعت رسالة لواحد على الشبكة اقوله هاي وهو يرد عليا يقولي هاي لازم يستقبل ببرنامج ويبعت ببرنامج تاني ولا ايه ؟ ؟ ؟ :angry:

#11
Amir Imam كتب:
مينفعش اعمل برنامج يرسل ويستقبل زي الماسنجر كده ؟

انا لما عملت كده بقى البرنامج يستقبل من نفسه بس

الأخ الفاضل ... Amir Imam

بالطبع ينفع عمل برنامج يرسل ويستقبل زي الماسنجر، وأعتقد أن ما فعلته هو المطلوب، ولكن لن تستطيع أختباره ... لماذا؟

لأنه لعمل ذلك يلزمك عدد 2 WinSock، الأول للإتصال (Client)، والثانى للإستقبال (Server)

ولنفترض أن الـ (Server) ينتظر اتصال على منفذ Port رقم 12321، إذا الـ (Client) سيتصل نفس المنفذ

ملحوظة: لا يمكن فتح نفس المنفذ Port لنفس الـ IP لإستقبال اتصال إلا مره واحدة فقط، ولا يمكن فتحه مره ثانية طالما مازال مفتوح من المره الأولى

ماذا فى حالة تشغيل تسختين من البرنامج على نفس الجهاز؟

النسخة الأولى: سيقوم الـ (Server) بها بفتح المنفذ 12321 لإنتظار أتصال، وينجح فى ذلك

النسخة الثانية: سيقوم الـ (Server) بها بفتح المنفذ 12321 لإنتظار أتصال، سيجد أن المنفذ محجوز من تطبيق أخر (النسخه الاولى)، ويفشل فى ذلك

فى هذه الحالة عند محاولة عمل Connection من الأولى للثانية، ستجد الأولى تستقبل من نفسها فقط، لأن الـ Client يحاول الأتصال بمنفذ رقم 12321، وهذا المنفذ تم حجزه للنسخه الأولى، وبالتالى تم الاتصال بالنسخه الأولى.

عند محاولة عمل Connection من الثانية للأولى، ستجد الأولى تستقبل من النسخة الثانية، لأن الـ Client يحاول الأتصال بمنفذ رقم 12321، وهذا المنفذ تم حجزه للنسخه الأولى، وبالتالى تم الاتصال بالنسخه الأولى.

لذا للتجربة يمكنه عمل إجراء أضافى لإختبار البرنامج:

  1. توصيل جهازين على الشبكة، والاختبار من جهاز للأخر، لأان لكل منهم IP مختلف
  2. أستخدام برامج للمحاكاة، أشهرها VMWare workstation من شركة VMWare، كذلك Microsoft Virtual PC ويمكن تحميله من موقع مايكروسوفت virtualpc_setup.exe
  3. عمل نسختين مختلفتين للبرنامج أثناء التجربة (للتجربة فقط)، بمعنى:

    1. النسخة الأولى: الـ(Server) يستقبل على منفذ: 12321، والـ(Client) يتصل على منفذ: 45654
    2. النسخة الثانية: الـ(Server) يستقبل على منفذ: 45654، والـ(Client) يتصل على منفذ: 12321


      راجع: المثال
WinSock.zip فى الموضوع كود إرسال البيانات, في أداة الوينسوك و الموضوع أداة مساعدة لتحويل أى بيانات الى مصفوفة بايت
ملحوظة: إذا قابلتك مشكلة فى شيئ أخر، فوضع كود أو مثال يسهل اكتشاف المشكلة والوصول لحل سريعاً
شكراً

تم تعديل هذه المشاركة بواسطة Eng. Usama El-Mokadem في 9 فبراير 2008 في 13:33

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#12

بسم الله

اشكرك بشدة يا زعيم المبرمجين في هذا المنتدى

طيب هنفترض ان انا عملت نسختين من برنامج نسخة أ ونسخة ب

لما ابعت من أ توصل لــــ ب الرسالة تمام لكن لما ابعت من ب النسخة أ متستقبلش رسائل

ياترى ده بسبب اني انا على جهاز واحد ومحتاج جهاز تاني على الشبكة ؟

مع العلم اني جربت اقتراحك التالت

اقتباس
  1. النسخة الأولى: الـ(Server) يستقبل على منفذ: 12321، والـ(Client) يتصل على منفذ: 45654
  2. النسخة الثانية: الـ(Server) يستقبل على منفذ: 45654، والـ(Client) يتصل على منفذ: 12321

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…