Pharaonic_Guy

Winsock API Tutorial

42 ردود في هذا الموضوع

السلام عليكم..

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

مرفق الجزء الأول داخل موضوع برمجة تطبيقات الشبكات بالأخص تطبيقات Client/Server

الموضوع أتوقع أنه يكون في 5 أجزاء سيكونوا كالتالي:

الجزء الأول - التعرف علي مكتبة Windows Sockets.

الجزء الثاني- درس حول أنشاء وأغلاق المقبس Socket.

الجزء الثالث- موضوع حول ألقاء خطاف لرسائل المقبسHook وعمل تصنيف فرعي لتلك الرسائلSubClass .

الجزء الرابع-برمجة برنامج الخادم.

الجزء الخامس-برمجة العميل.

وسأختم الموضوع بشرح لكيفية إرسال بريد الكتروني بدوال Winsock Api وكيفية مخاطبة سيرفر بريد ما بروتوكول SMTP .

تم ضغط المرفقات ببرنامج Winrar.

Winsock_API_tutorial_Part_1.zip

تم تعديل بواسطه Pharaonic_Guy
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

"Pharaonic_Guy"

اهلا بك و مشكور ياغالي , بارك الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أهلاً بك أخي محمد في المنتدى ..

وشكراً لك على هذه الإضافة المميزة ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الجزء الثاني:

كيفية انشاء واغلاق مقبس Socket

موضوع سريع ولا يأخذ سوي أقل من 5 دقائق دراسة وتطبيق.

Winsock_API_Tutorial_Part_II.zip

تم تعديل بواسطه Pharaonic_Guy
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

موضوع مهم و جميل

بارك الله فيك اخي

وثق بي اخي لن تندم لانك اشتركت في هذا المنتدى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ممتاز بس ياليت تكمل وخصوصا موضوع ارسال بريد الكتروني بالاعتماد على API

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

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

و ان شاء الله نحن من المتابعين للموضوع

مع تحياتي

م.فادي كلثوم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

الجزء الثالث

مرفق موضوع إنشاء خطاف للرسائل وعمل تصنيف فرعي لها ..

مدة القراءة والتطبيق ما بين 10 إلي 20 دقيقة.

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

سيفيدنا هذا الموضوع في الأتي :

-لاحظ أنني لم أكتب ماذا سنستفيد من هذا الموضوع في الملف المرفق-

*أولا دالة Listen والتي سنستخدمها في السيرفر لكي نقوم بانتظار اتصال بالسيرفر من العميل تدخل في حالة Blocking للمقبس Socket حتي يتم الاتصال ونوافق عليه بدالة Accept فتعمل Raise Event للمقبس..

في أثناء ال Blocking Socket سيدخل المشروع بأكمله في حالة ال Blocking.

عن طريق عمل خطاف للرسائل Hook التي ستصل إلي نافذة Hwnd نحددها في برنامجنا نستطيع معرفة جميع الأحداث التي تصل إلي برنامجنا ومنها أحداث المقبس ونستطيع بالتالي التحكم بتلك الأحداث بدون الدخول بالمقبس لحالة ال Blocking .-- هذا الموضوع سنتناوله وتفهمه بالتفصيل عندما نصمم الخادم Server --

*ثانيا حتي نستطيع بناء برامج Client/Server قوية..لابد من دراسة هذا الموضوع المرفق..لإن معظم البرامج تقوم تقوم بإنشار أكثر من مقبس,كل واحد وله أستخدام فمثلا سننشا مقبس ليقوم بعمل اتصال بالخادم وتبادل بيانات معينة,ننشا مقبس أخر لنقوم بنقل الملفات عبره وهكذا..

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

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

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

Hooks___SubClassing.zip

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا للأخ Pharaonic_Guy على الموضوع

ولكن الكتب مكتوبة word

وأنا لم ولن أنصب الأوفيس على جهازي

لذلك لا أعلم إن كان سؤالي هذا موجود في هذه الملفات أم لا وهو

أريد دوال api بدلا من إستخدام الأداه mswinsock.ocx أتمني أن تكون أكواد بسيطة (غير مكتوبة بالوورد)

على الأقل أكواد server

أنتظر الرد

سلااااااااااااااااااااااااااااااام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اولا: نرحب بك عضو جديد في هذا المنتدي العظيم

ثانيا : نشكرك كثيرا علي هذه البدايه الجميله والرائعه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

حياك الله يا Pharaonic_Guy

نحن طالبوا مساعدة

عاملين مشروع يتمثل في استلام باكت من انترفيس (مثلا 192.168.0.1) ويرسله من انترفيس ثاني (مثلا 192.168.0.2) على نفس الجهاز، ونريد من الجهاز الذي تدور عليه هذه العملية أن يعمل فورورد للباكت كما هو أي بدون تغيير عنوان المرسل الأصلي!!!!!!

ممكن مساعدتك

شكراً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

سؤال عن عملية ال hook

إذا كان عندي أكثر من نافذة في البرنامج كيف أعرف إلى أية نافذة تصل رسائل النظام كي أحول الرسائل منها إلى الإجراء الفرعي؟

مثلا بمقبسين وينسوك في البرنامج كيف أعرف إلى أي منهما تنتمي رسالة وصلت من النظام بقبول الاتصال؟

هل ينبغي أن أربط كل مقبس بنافذة وكيف يتم هذا الربط؟

ماذا لو أردت إنشاء عدد من المقابس، ونافذة واحدة للبرنامج؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اخى / Pharaonic_Guy

دروس ممتازة

وفقك الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

أسف جدا علي التأخير وذلك لظروف سيئة جداااا...

أولا أعذرني أخي "عبدالله سلام" علي عدم الرد الآن حتي أقوم بدراسة سؤالك جيدا...

الأخ "e-asm" سؤالك جميل جدااااااااااااااا

وأعذرني لو لم أستطع التحدث معك في هذا الموضوع بأستضافة الآن ,,لكن سأعوضك بمشروع كنت عامله كتجربة لبرنامج هاك يسمح بتعدد المقابسMulti Sockets وكل مقبس له نافذة Hwnd وعامل لكل مقبس تصنيف فرعي

البرنامج تجربة لمقبسين فقط ..مقبس رئيسي ومقبس للشات,ويمكن تطبيق نفس الفكرة علي أي مقابس أخري..

المهم أن تأخذ بالك من الدالة WSAAsyncSelect لأنها جواب لسؤالك, فعن طريق معاملات تلك الدالة تستطيع أن تحدد مقبض النافذة Hwnd التي ستسقبل أحداث أي مقبس تحدده, فالمعامل الأول يوضح المقبس الذي تريد أستقبال أحداثه والمعامل الثاني , مقبض النافذة Hwnd التي ستسقبل تلك الأحداث, وتلك النافذة أصلا معمول عليها Hook لتصنيف فرعي .... وهكذا مع أي مقبس أخر...

والمشروع المرفق سيفسر لك الكثير ...

وأعذروني مرة أخري يا أخوان, وسأحاول أن أضع بقية الدروس الغد بإذن الله ...

Create Multi Sockets.zip

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الله يعطيكم العافيه

www.zadtech.com

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

الجزء الرابع والخامس

مرفق الجزء الرابع والخامس , الرابع يختص ببرمجة الخادم Server والخامس يختص ببرمجة العميل..

الأجزاء القادمة ستكون لكيفية برمجة تعدد العملاء Multi Clients علي خادم واحد وباستخدام مقبس واحد ومنفذ واحد فقط , لأستخدامها في برمجة Net Cafe Controller, وأيضا ستكون لكيفية إرسال بريد الكتروني بكل سهولة بدوال Winsock API ..

Winsock API Tutorial Part 4&5.zip

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مشكووور أخى Pharaonic_Guy على الدروس

دروس رائعه حقاً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

تسلم ايدك :lol:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا للأخ Pharaonic_Guy عل هذه المشاركات الفعالة وفقك الله للمزيد

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

فأرجو ممن لديه الخبرة فى هذه الجزئية المشاركة

وشكرا مرة اخرى للأستاذ Pharaonic_Guy

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

صحيح أن المنتدى يحوي أكثر المبدعين العرب

تسلم يداك وأن شالله إلى تألق مستمر في مسيرتك العلمية

اخ Pharaonic_Guy

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .