أخواني و اخواتي المبرمجين العرب هذا هو مثال على استعمال ال winsock
في برنامج Client/Server for chat
ادعو الله ان اكون قد افدتكم.
انا جاهز الى اجابة اي سؤال عن هذه الاداه
أخواني و اخواتي المبرمجين العرب هذا هو مثال على استعمال ال winsock
في برنامج Client/Server for chat
ادعو الله ان اكون قد افدتكم.
انا جاهز الى اجابة اي سؤال عن هذه الاداه
راكان الحنيطي
Be Open Source

الاخ Maverick و الاخوة الكرام
السلام عليكم ورحمة الله
شو يا اخ Maverick
انت قلت دروس مش برنامج
بعد عمري بارك الله فيك
لكن يا ريت نجد لنا دروس
دروس دروس دروس
من بداية التعامل مع هذه الاداة الي
جميع خصائصها
و لك الشكر اجزله
تم تعديل هذه المشاركة بواسطة إبراهيم الطيب في 4 أبريل 2005 في 15:45

انا اكتب بالدرس انتظروا :)
تم تعديل هذه المشاركة بواسطة Maverick في 14 أبريل 2004 في 15:50
راكان الحنيطي
Be Open Source

لعمل برنامج يتعامل مع الشبكات يجب اضافة الاداة من Project->Components->Microsoft Winsock و من ثم كتابة الكود لها.
لعمل برامج الكلاينت يجب عليك معرفة الدالات الاتية:
Connect(RemoteHost,Port): هذه هو ال function الذي يعمل Connection مع المضيف. Close() لاغلاق الConnection GetData(Buffer, Type,Size): هذا لجلب المعلومات عند استقبالها.
و يجب ايضا معرفة ال events الاتية:
Private Sub Winsock1_Connect(): هذا الحدث يتم اطلاقه عند شبك الاداة مع المستضيف. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long): اما هذا الحدث فيتم اطلاقه عند استلام معلومات. التي يتم جلبها ب GetData function علما بان Bytes total هو حجم المعلومات المستلمة بالبايت.
الشئ الاول الذي يمكن ان تفعله هو Connect وهذا هو مثال:
Winsock1.Connect “127.0.0.1”,3500
حيث ان 127.0.0.1 هو ال اي بي لكومبيوتر الذي يعمل عليه الكلاينت
3500 هو الport
بعد ذلك يجب عليك ان تنتظر الحدث :
Winsock_Connect()
لمعرفة ان الاداة قد بدأت ال Connection
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
في هذا الحدث تكون قد عرفت ان الاداة استقبلت بعض المعلومات التي عليك جلبها:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim Data As String Winsock1.GetData Data MsgBox Data End Sub
اما عن ال server فيجب عليك معرفة اشياء اخرى:
.LocalPort: الذي ستبحث الاداة عن ال Connection من خلاله. .Listen : لجعل الداة بالبدء بالبحث. .Accept(RequestID): الفنكشن لجعل الاداة بقبول ال Connection المعرف بمفتاح RequestID
و الاحداث:
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) حيث انك تعطي ال RequestID لل accept function للقبول.
و هذا هو مثال:
Private Sub Form_Load() Winsock1.LocalPort = 3500 Winsock1.Listen End Sub Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) Winsock1.Accept requestID End Sub
تم تعديل هذه المشاركة بواسطة Maverick في 14 أبريل 2004 في 16:09
راكان الحنيطي
Be Open Source

مجهود طيب بإذن الله ، أهم شىء المواصله و إكمال باقى وظائف و إستخدامات هذه الأداه
فريق إيجيت بروجيكتس لتطوير و تصميم مشاريع التخرج لطلبة نظم الحاسبات و الإتصالات و حلول الشركات
http://www.egit-projects.comمن موضوعــاتــى
برنامج البحث المتقدم In-File Spider V1.5
أداه مصريه شبيهه بميكروسوفت XML 3.0 + إضافات جديده و أسرع فى الأداء
ما تحتاجة لتصميم البرامج من ادوات و موارد
Handle-X Trial V1.0 ...... برنامج الشبكات و الإختراق العربى 100% بدون أدوات OCX خارجيه
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
تستخدم لمعرفة الخطأ الذي حصل اثناء ال connection
مثال:
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean) MsgBox "Sorry, an error number " & Number & " has occurd:" & vbCrLf & Description End Sub
Private Sub Winsock1_SendComplete()
هذا الحدث يتم اطلاقه عندما تنتهي ال winsock من ارسال المعلومات.
مثال:
Dim Data As String Private Sub Command1_Click() Data = "HI" Winsock1.SendData Data End Sub Private Sub Winsock1_SendComplete() MsgBox "Data is sent" End Sub
Private Sub Winsock1_SendProgress(ByVal bytesSent As Long, ByVal bytesRemaining As Long)
يتم اطلاقه عندما يكون الارسال جاري.
مثال:
Private Sub Winsock1_SendProgress(ByVal bytesSent As Long, ByVal bytesRemaining As Long) Label1.Caption = bytesSent & " has been sent and " & bytesRemaining & " bytes are remaining" End Sub
تم تعديل هذه المشاركة بواسطة Maverick في 15 أبريل 2004 في 23:30
راكان الحنيطي
Be Open Source

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

اسف Maverick و الاخوه الاعزاء
بس هو سؤال بسيط ياريت اجد الاجابه عندكم
السؤال:
اعمل في برنامج (التذكير بمواعيد الصلاة)
المراد من البرنامج ان يؤذن عندما يحين موعد الصلاة
كذلك تظهر شاشه صغيرة مكتوب عليها حان الان موعد
صلاة ...... علي حسب الصلاة وعندما تظهر هذه الشاشه
يبدأ الاذان يعني انا عملت تشغيل الصوت عند حدث
تحمل الفورم (الشاشة)
الحمد لله تمت هذه المرحله ولكن المشكله
اريد ان تظهر هذه الشاشه علي كل اجهزة الـ Client
اسف اذا نسبت اخباركم بان عليه ان يعمل في شبكه
محليه LAN صغيره
فياريت الطريقه اللي تظهر بيها الشاشه السابقة (اللي يؤذن فيها البرنامج )
ياريت اللي يعرف ما يبخلش علي
المحاولة مرفقة ادناه
بس ماهي كامله ناقصها الملف تبع الاذان
و ختي يعمل معكم بس حط اي ملف صوتي
في مسار الرنامج وسميه azan

سأتكلم الان عن ال properties في هذه الاداة:
State: تعطيك حالة الاداة. من هذه الحالات:
sckClosed sckClosing sckConnected sckConnected sckConnectionPending sckError sckHostResolvied sckListening sckOpen sckResolvingHost
مثال:
Dim state As MSWinsockLib.StateConstants state = Winsock1.state If state <> sckClosed Then Winsock1.Close End If
Dim state As MSWinsockLib.StateConstants Winsock1.Connect "127.0.0.1", 3500 Do Until state = sckConnected الانتظار الى ان يتم شبك الداة مع المستضيف. state = Winsock1.state DoEvents loop
اما عن Winsock1.LocalIP فانها تعطي ال IP address للحاسب الذي يعمل عليه البرنامج.
Winsock1.LocalPort هو المنفذ الذي ستقوم الاداة بالبحث فيه عن Connection مثال:
Winsock1.LocalPort = 3500 Winsock1.Listen
RemoteHostIP هو ال IP address للحاسب الذي يعمل عليه البرنامج Serverاو نسخة اخرى من ال Client
لقد تم سؤالي عن الفرق بين الدالتين:
GetData
PeekData
و كل ما اعرفه كفرق بينهما انه ال GetData عندما يتم استعاؤه فان المعلومات المستقبلة سيتم نقلها الى المتغير الذي حددته:
Dim Data As String Winsock1.GetData Data
في هذه الحالة سيتم نقلها من الاداة الى المتغير Data.
اما عن ال PeekData فان المعلومات تنسخ ثم تنقل الى المتغير بحيث يمكن الرجوع الى ال Data لاحقا حتا ولو استعيت PeekData مليون مرة :P
تم تعديل هذه المشاركة بواسطة Maverick في 19 أبريل 2004 في 22:20
راكان الحنيطي
Be Open Source

السلام عليكم
اسف ايها الاخوة
ولكن اوجه مشكله في الرفع (ارفاق الملفات )
ابراهيم الطيب
السودان الخرطوم

موضوع رائع فعلا اتمنى الاستمرار فيه
وجزاك الله خيرا
تحيــــــــاتي
إذا قاومتك الأيام أو إنقلب عليك الدهر فلا تنس الأمل
لدي تعليق
ليس كل الملفات يمكن إرسالها بنفس الطريقه ، فقد حاولة ارسال ملف صوتي بهده الطريقه و لكن لم تنفع ، فارجو المساعده فانا بحاجه ماسه لارسال ملف صوتي.
علما انني طبقت نفس الطريقه على ملفات نصية و على هيئة حزم و تنفدت
وجزاكم الله خيراً
لدي سؤال مهم جدا
اذا تم ارسال رسالة من A الى B فكيف يمكن قراءة هذه الرسالة من الذاكرة قبل ان تصل الى الجهاز B.
هل يوجد شرح للبروتوكول UDP إذا كان أحد يعرف كيفية التعامل معة فلا يبخل وأرجو أن يكون الشرح ملف PDF
إن لم يسطتع فل يقم بعمل كموضوع منفرد
my new site click here
هذا الموضوع مغلق.