تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
بناء غرف محادثة
#1
كاتب الموضوع : حسين احمد طالب

كيف تصمم غرف المحادثة .عندما نصمم غرف المحادثة كل غرفة من غرف المحادثة نسميها بأسم معين ونعطيها عنوان معين ضمن نطاق Class D للعنونة كل شخص يريد ان يدخل غرفة يعمل انضمام لعنوان هذه الغرفة حتى يتحدث مع كل موجود داخل الغرفة.اذن في برمجة غرف المحادثة كل شخص يدخل غرفة محادثة يعمل انضمام الى المجموعة الموجودة في الغرفة على عنوان الغرفة حتى يرسل ويستلم من المجموعة وهذا ما يحدث بظبط في غرف المحادثة واكيد يتم تحديد لكل غرفة عنوان معين من قبل الشركة الخاصة ببرنامج المحادثة .وبذالك يستطيع محادثة كل المتواجدين داخل الغرفة
لنصمم مشروع جديد كما في الشكل
كما نلاحظ كونا قائمة بأسماء الغرف الموجودة داخل ListBox1 لعرض الغرف في داخلها وكل شخص جديد يدخل يختار غرفة لكي ينضم اليها وندرج Button انضمام لمجموعة نسميها jionbt وندرج Button للأرسال نسميها send_button. وندرج اداة نص textbox لعنوان الغرفة نسميها tbMulticastGroup وندرج اداة نص لمنفذ الغرفة نسميها tbPort وندرج اداة نص لأسم الشخص المختار داخل الغرفة نسميها tbname وندرج اداة نص لأستلام المحادثة من بقية اعضاء الغرفة نسميها tbMessage وندرج اداة نص لكتابة النصوص وارسالها tbMessagesend
نريد عند الضغط على اسم مجموعة يعرف عنوانها داخل tbMulticastGroup لذالك تخزن عناوين كل غرفة وعندما نختار غرفة يظهر عنوانها وداخل حدث ListBox1_SelectedIndexChanged نكتب الكود التالي
VB.NET CODE

كود :
[color=#000000][COLOR=#007700]Private [/color][color=#0000bb]Sub ListBox1_SelectedIndexChanged[/color][color=#007700]([/color][color=#0000bb]ByVal sender [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]ByVal e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]EventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles ListBox1[/color][color=#007700].[/color][COLOR=#0000bb]SelectedIndexChanged
        [/COLOR][COLOR=#007700]Try
            If [/COLOR][color=#0000bb]jionbt[/color][color=#007700].[/color][color=#0000bb]Enabled [/color][color=#007700]= [/color][COLOR=#0000bb]True Then
                Select [/COLOR][color=#007700]Case [/color][color=#0000bb]Trim[/color][color=#007700]([/color][color=#0000bb]ListBox1[/color][color=#007700].[/color][color=#0000bb]SelectedItem[/color][COLOR=#007700])
                    Case [/COLOR][COLOR=#dd0000]"كروب الشياب"
                        [/COLOR][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]"224.5.4.6 "
                    [/COLOR][color=#007700]Case [/color][COLOR=#dd0000]"كروب الشباب"
                        [/COLOR][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]"224.5.4.8"
                    [/COLOR][color=#007700]Case [/color][COLOR=#dd0000]"كروب المقاعدين"
                        [/COLOR][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]"224.5.4.9"
                    [/COLOR][color=#007700]Case [/color][COLOR=#dd0000]"كروب ورد"
                        [/COLOR][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]"224.5.4.10"
                    [/COLOR][color=#007700]Case [/color][COLOR=#dd0000]"كروب طلاب"
                        [/COLOR][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]"224.5.4.11 "
                    [/COLOR][color=#007700]Case [/color][COLOR=#dd0000]"كروب مبرمجين"
                        [/COLOR][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]" 224.5.4.12"
                [/COLOR][COLOR=#0000bb]End Select
                ljionto[/COLOR][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#0000bb]ListBox1[/color][color=#007700].[/color][COLOR=#0000bb]SelectedItem
            End [/COLOR][COLOR=#007700]If
        Catch [/COLOR][color=#0000bb]ex [/color][color=#007700]As [/color][COLOR=#0000bb]Exception
        End [/COLOR][COLOR=#007700]Try
    [/COLOR][COLOR=#0000bb]End Sub  
[/COLOR][/COLOR]

الأن بعد ان حصلنا على عنوان الغرفة ومنفذها نريد ان ننضم اليها داخل Button انضمام لمجموعة jionbt نعمل تشغيل لدالة التنصت والأنضمام الى مجموعة نكتب الكود التالي
VB.NET CODE

كود :
[color=#000000][COLOR=#0000bb] myth1 [/color][color=#007700]= New [/color][color=#0000bb]Thread[/color][color=#007700](New [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Threading[/color][color=#007700].[/color][color=#0000bb]ThreadStart[/color][color=#007700]([/color][color=#0000bb]AddressOf JionToGropMulticast[/color][COLOR=#007700]))
[/COLOR][color=#0000bb]myth1[/color][color=#007700].[/color][color=#0000bb]Start[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]jionbt[/color][color=#007700].[/color][color=#0000bb]Enabled [/color][color=#007700]= [/color][COLOR=#0000bb]False  
[/COLOR][/COLOR]

JionToGropMulticast هي الدالة التي ننضم بها الى المجموعة ويكون كودها
VB.NET CODE

كود :
[color=#000000][COLOR=#0000bb]Dim client [/color][color=#007700]As [/color][COLOR=#0000bb]UdpClient
Dim myth1 [/COLOR][color=#007700]As [/color][COLOR=#0000bb]Thread
Sub JionToGropMulticast[/COLOR][COLOR=#007700]()
[/COLOR][color=#0000bb]Dim port [/color][color=#007700]As [/color][color=#0000bb]Integer [/color][color=#007700]= [/color][color=#0000bb]Val[/color][color=#007700]([/color][color=#0000bb]tbPort[/color][color=#007700].[/color][color=#0000bb]Text[/color][COLOR=#007700])
[/COLOR][color=#0000bb]client [/color][color=#007700]= New [/color][color=#0000bb]UdpClient[/color][color=#007700]([/color][color=#0000bb]port[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim group [/color][color=#007700]As [/color][color=#0000bb]IPAddress [/color][color=#007700]= [/color][color=#0000bb]IPAddress[/color][color=#007700].[/color][color=#0000bb]Parse[/color][color=#007700]([/color][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text[/color][COLOR=#007700])
[/COLOR][color=#0000bb]client[/color][color=#007700].[/color][color=#0000bb]JoinMulticastGroup[/color][color=#007700]([/color][color=#0000bb]group[/color][color=#007700], [/color][color=#0000bb]255[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim remoteEP [/color][color=#007700]As [/color][color=#0000bb]IPEndPoint [/color][color=#007700]= New [/color][color=#0000bb]IPEndPoint[/color][color=#007700]([/color][color=#0000bb]group[/color][color=#007700], [/color][color=#0000bb]port[/color][COLOR=#007700])
Do
[/COLOR][color=#0000bb]Dim ep [/color][color=#007700]As [/color][color=#0000bb]IPEndPoint [/color][color=#007700]= [/color][COLOR=#0000bb]Nothing
Dim buffer[/COLOR][color=#007700]() As [/color][color=#0000bb]Byte [/color][color=#007700]= [/color][color=#0000bb]client[/color][color=#007700].[/color][color=#0000bb]Receive[/color][color=#007700]([/color][color=#0000bb]ep[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim message [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Text[/color][color=#007700].[/color][color=#0000bb]Encoding[/color][color=#007700].[/color][color=#0000bb]UTF8[/color][color=#007700].[/color][color=#0000bb]GetString[/color][color=#007700]([/color][color=#0000bb]buffer[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]tbMessage[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]+= [/color][color=#0000bb]message [/color][color=#007700]+ [/color][COLOR=#0000bb]vbCrLf
Loop
End Sub  
[/COLOR][/COLOR]

بعد ان انضمينا الى المجموعة في Button للأرسال الى المجموعة send_button نستدعي دالة الأرسال لمجموعة sendTOGrop ونرسل لها عنوان المجموعة ورقم بورت التنصت للمجموعة والرسالة
VB.NET CODE

كود :
[color=#000000][COLOR=#0000bb] sendTOGrop[/color][color=#007700]([/color][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text[/color][color=#007700], [/color][color=#0000bb]Integer[/color][color=#007700].[/color][color=#0000bb]Parse[/color][color=#007700]([/color][color=#0000bb]tbPort[/color][color=#007700].[/color][color=#0000bb]Text[/color][color=#007700]), [/color][color=#0000bb]Encoding[/color][color=#007700].[/color][color=#0000bb]UTF8[/color][color=#007700].[/color][color=#0000bb]GetBytes[/color][color=#007700]([/color][color=#0000bb]tbname[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]& [/color][color=#dd0000]":" [/color][color=#007700]& [/color][color=#0000bb]tbMessagesend[/color][color=#007700].[/color][color=#0000bb]Text[/color][COLOR=#007700]))  
[/COLOR][/COLOR]

دالة sendTOGrop يكون كودها
VB.NET CODE

كود :
[color=#000000][COLOR=#007700]Public [/color][color=#0000bb]Sub sendTOGrop[/color][color=#007700]([/color][color=#0000bb]ByVal mcastGroup [/color][color=#007700]As [/color][color=#0000bb]String[/color][color=#007700], [/color][color=#0000bb]ByVal port [/color][color=#007700]As [/color][color=#0000bb]Integer[/color][color=#007700], [/color][color=#0000bb]ByVal messageByte [/color][color=#007700]As [/color][color=#0000bb]Byte[/color][COLOR=#007700]())
[/COLOR][color=#0000bb]Dim ip [/color][color=#007700]As [/color][color=#0000bb]IPAddress [/color][color=#007700]= [/color][color=#0000bb]IPAddress[/color][color=#007700].[/color][color=#0000bb]Parse[/color][color=#007700]([/color][color=#0000bb]mcastGroup[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim s [/color][color=#007700]As [/color][color=#0000bb]Socket [/color][color=#007700]= New [/color][color=#0000bb]Socket[/color][color=#007700]([/color][color=#0000bb]AddressFamily[/color][color=#007700].[/color][color=#0000bb]InterNetwork[/color][color=#007700], [/color][color=#0000bb]SocketType[/color][color=#007700].[/color][color=#0000bb]Dgram[/color][color=#007700], [/color][color=#0000bb]ProtocolType[/color][color=#007700].[/color][color=#0000bb]Udp[/color][COLOR=#007700])
[/COLOR][color=#0000bb]s[/color][color=#007700].[/color][color=#0000bb]SetSocketOption[/color][color=#007700]([/color][color=#0000bb]SocketOptionLevel[/color][color=#007700].[/color][color=#0000bb]IP[/color][color=#007700], [/color][color=#0000bb]SocketOptionName[/color][color=#007700].[/color][color=#0000bb]AddMembership[/color][color=#007700], New [/color][color=#0000bb]MulticastOption[/color][color=#007700]([/color][color=#0000bb]ip[/color][COLOR=#007700]))
[/COLOR][color=#0000bb]s[/color][color=#007700].[/color][color=#0000bb]SetSocketOption[/color][color=#007700]([/color][color=#0000bb]SocketOptionLevel[/color][color=#007700].[/color][color=#0000bb]IP[/color][color=#007700], [/color][color=#0000bb]SocketOptionName[/color][color=#007700].[/color][color=#0000bb]MulticastTimeToLive[/color][color=#007700], [/color][color=#0000bb]255[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim ipep [/color][color=#007700]As [/color][color=#0000bb]IPEndPoint [/color][color=#007700]= New [/color][color=#0000bb]IPEndPoint[/color][color=#007700]([/color][color=#0000bb]IPAddress[/color][color=#007700].[/color][color=#0000bb]Parse[/color][color=#007700]([/color][color=#0000bb]mcastGroup[/color][color=#007700]), [/color][color=#0000bb]port[/color][COLOR=#007700])
[/COLOR][color=#0000bb]s[/color][color=#007700].[/color][color=#0000bb]Connect[/color][color=#007700]([/color][color=#0000bb]ipep[/color][COLOR=#007700])
[/COLOR][color=#0000bb]s[/color][color=#007700].[/color][color=#0000bb]Send[/color][color=#007700]([/color][color=#0000bb]messageByte[/color][color=#007700], [/color][color=#0000bb]messageByte[/color][color=#007700].[/color][color=#0000bb]Length[/color][color=#007700], [/color][color=#0000bb]SocketFlags[/color][color=#007700].[/color][color=#0000bb]None[/color][COLOR=#007700])
[/COLOR][color=#0000bb]s[/color][color=#007700].[/color][color=#0000bb]Close[/color][COLOR=#007700]()
[/COLOR][COLOR=#0000bb]End Sub  
[/COLOR][/COLOR]

ويكون كود البرنامج كامل
VB.NET CODE

كود :
[color=#000000][COLOR=#0000bb]Imports System[/color][color=#007700].[/color][COLOR=#0000bb]Net
Imports System[/COLOR][color=#007700].[/color][color=#0000bb]Net[/color][color=#007700].[/color][COLOR=#0000bb]Sockets
Imports System[/COLOR][color=#007700].[/color][COLOR=#0000bb]Text
Imports System[/COLOR][color=#007700].[/color][COLOR=#0000bb]IO
Imports System[/COLOR][color=#007700].[/color][COLOR=#0000bb]Threading
[/COLOR][color=#007700]Public Class [/color][COLOR=#0000bb]send_message
Dim client [/COLOR][color=#007700]As [/color][COLOR=#0000bb]UdpClient
Dim myth1 [/COLOR][color=#007700]As [/color][COLOR=#0000bb]Thread
Sub JionToGropMulticast[/COLOR][COLOR=#007700]()
[/COLOR][color=#0000bb]Dim port [/color][color=#007700]As [/color][color=#0000bb]Integer [/color][color=#007700]= [/color][color=#0000bb]Val[/color][color=#007700]([/color][color=#0000bb]tbPort[/color][color=#007700].[/color][color=#0000bb]Text[/color][COLOR=#007700])
[/COLOR][color=#0000bb]client [/color][color=#007700]= New [/color][color=#0000bb]UdpClient[/color][color=#007700]([/color][color=#0000bb]port[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim group [/color][color=#007700]As [/color][color=#0000bb]IPAddress [/color][color=#007700]= [/color][color=#0000bb]IPAddress[/color][color=#007700].[/color][color=#0000bb]Parse[/color][color=#007700]([/color][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text[/color][COLOR=#007700])
[/COLOR][color=#0000bb]client[/color][color=#007700].[/color][color=#0000bb]JoinMulticastGroup[/color][color=#007700]([/color][color=#0000bb]group[/color][color=#007700], [/color][color=#0000bb]255[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim remoteEP [/color][color=#007700]As [/color][color=#0000bb]IPEndPoint [/color][color=#007700]= New [/color][color=#0000bb]IPEndPoint[/color][color=#007700]([/color][color=#0000bb]group[/color][color=#007700], [/color][color=#0000bb]port[/color][COLOR=#007700])
Do
[/COLOR][color=#0000bb]Dim ep [/color][color=#007700]As [/color][color=#0000bb]IPEndPoint [/color][color=#007700]= [/color][COLOR=#0000bb]Nothing
Dim buffer[/COLOR][color=#007700]() As [/color][color=#0000bb]Byte [/color][color=#007700]= [/color][color=#0000bb]client[/color][color=#007700].[/color][color=#0000bb]Receive[/color][color=#007700]([/color][color=#0000bb]ep[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim message [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Text[/color][color=#007700].[/color][color=#0000bb]Encoding[/color][color=#007700].[/color][color=#0000bb]UTF8[/color][color=#007700].[/color][color=#0000bb]GetString[/color][color=#007700]([/color][color=#0000bb]buffer[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]tbMessage[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]+= [/color][color=#0000bb]message [/color][color=#007700]+ [/color][COLOR=#0000bb]vbCrLf
Loop
End Sub
[/COLOR][color=#007700]Public [/color][color=#0000bb]Sub sendTOGrop[/color][color=#007700]([/color][color=#0000bb]ByVal mcastGroup [/color][color=#007700]As [/color][color=#0000bb]String[/color][color=#007700], [/color][color=#0000bb]ByVal port [/color][color=#007700]As [/color][color=#0000bb]Integer[/color][color=#007700], [/color][color=#0000bb]ByVal messageByte [/color][color=#007700]As [/color][color=#0000bb]Byte[/color][COLOR=#007700]())
[/COLOR][color=#0000bb]Dim ip [/color][color=#007700]As [/color][color=#0000bb]IPAddress [/color][color=#007700]= [/color][color=#0000bb]IPAddress[/color][color=#007700].[/color][color=#0000bb]Parse[/color][color=#007700]([/color][color=#0000bb]mcastGroup[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim s [/color][color=#007700]As [/color][color=#0000bb]Socket [/color][color=#007700]= New [/color][color=#0000bb]Socket[/color][color=#007700]([/color][color=#0000bb]AddressFamily[/color][color=#007700].[/color][color=#0000bb]InterNetwork[/color][color=#007700], [/color][color=#0000bb]SocketType[/color][color=#007700].[/color][color=#0000bb]Dgram[/color][color=#007700], [/color][color=#0000bb]ProtocolType[/color][color=#007700].[/color][color=#0000bb]Udp[/color][COLOR=#007700])
[/COLOR][color=#0000bb]s[/color][color=#007700].[/color][color=#0000bb]SetSocketOption[/color][color=#007700]([/color][color=#0000bb]SocketOptionLevel[/color][color=#007700].[/color][color=#0000bb]IP[/color][color=#007700], [/color][color=#0000bb]SocketOptionName[/color][color=#007700].[/color][color=#0000bb]AddMembership[/color][color=#007700], New [/color][color=#0000bb]MulticastOption[/color][color=#007700]([/color][color=#0000bb]ip[/color][COLOR=#007700]))
[/COLOR][color=#0000bb]s[/color][color=#007700].[/color][color=#0000bb]SetSocketOption[/color][color=#007700]([/color][color=#0000bb]SocketOptionLevel[/color][color=#007700].[/color][color=#0000bb]IP[/color][color=#007700], [/color][color=#0000bb]SocketOptionName[/color][color=#007700].[/color][color=#0000bb]MulticastTimeToLive[/color][color=#007700], [/color][color=#0000bb]255[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim ipep [/color][color=#007700]As [/color][color=#0000bb]IPEndPoint [/color][color=#007700]= New [/color][color=#0000bb]IPEndPoint[/color][color=#007700]([/color][color=#0000bb]IPAddress[/color][color=#007700].[/color][color=#0000bb]Parse[/color][color=#007700]([/color][color=#0000bb]mcastGroup[/color][color=#007700]), [/color][color=#0000bb]port[/color][COLOR=#007700])
[/COLOR][color=#0000bb]s[/color][color=#007700].[/color][color=#0000bb]Connect[/color][color=#007700]([/color][color=#0000bb]ipep[/color][COLOR=#007700])
[/COLOR][color=#0000bb]s[/color][color=#007700].[/color][color=#0000bb]Send[/color][color=#007700]([/color][color=#0000bb]messageByte[/color][color=#007700], [/color][color=#0000bb]messageByte[/color][color=#007700].[/color][color=#0000bb]Length[/color][color=#007700], [/color][color=#0000bb]SocketFlags[/color][color=#007700].[/color][color=#0000bb]None[/color][COLOR=#007700])
[/COLOR][color=#0000bb]s[/color][color=#007700].[/color][color=#0000bb]Close[/color][COLOR=#007700]()
[/COLOR][COLOR=#0000bb]End Sub


[/COLOR][color=#007700]Private [/color][color=#0000bb]Sub send_button_Click[/color][color=#007700]([/color][color=#0000bb]ByVal sender [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]ByVal e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]EventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles send_button[/color][color=#007700].[/color][COLOR=#0000bb]Click
sendTOGrop[/COLOR][color=#007700]([/color][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text[/color][color=#007700], [/color][color=#0000bb]Integer[/color][color=#007700].[/color][color=#0000bb]Parse[/color][color=#007700]([/color][color=#0000bb]tbPort[/color][color=#007700].[/color][color=#0000bb]Text[/color][color=#007700]), [/color][color=#0000bb]Encoding[/color][color=#007700].[/color][color=#0000bb]UTF8[/color][color=#007700].[/color][color=#0000bb]GetBytes[/color][color=#007700]([/color][color=#0000bb]tbname[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]& [/color][color=#dd0000]":" [/color][color=#007700]& [/color][color=#0000bb]tbMessagesend[/color][color=#007700].[/color][color=#0000bb]Text[/color][COLOR=#007700]))
[/COLOR][COLOR=#0000bb]End Sub

[/COLOR][color=#007700]Private [/color][color=#0000bb]Sub jionbt_Click[/color][color=#007700]([/color][color=#0000bb]ByVal sender [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]ByVal e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]EventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles jionbt[/color][color=#007700].[/color][COLOR=#0000bb]Click


myth1 [/COLOR][color=#007700]= New [/color][color=#0000bb]Thread[/color][color=#007700](New [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Threading[/color][color=#007700].[/color][color=#0000bb]ThreadStart[/color][color=#007700]([/color][color=#0000bb]AddressOf JionToGropMulticast[/color][COLOR=#007700]))
[/COLOR][color=#0000bb]myth1[/color][color=#007700].[/color][color=#0000bb]Start[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]jionbt[/color][color=#007700].[/color][color=#0000bb]Enabled [/color][color=#007700]= [/color][COLOR=#0000bb]False
End Sub

[/COLOR][color=#007700]Private [/color][color=#0000bb]Sub ListBox1_SelectedIndexChanged[/color][color=#007700]([/color][color=#0000bb]ByVal sender [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]ByVal e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]EventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles ListBox1[/color][color=#007700].[/color][COLOR=#0000bb]SelectedIndexChanged
[/COLOR][COLOR=#007700]Try
If [/COLOR][color=#0000bb]jionbt[/color][color=#007700].[/color][color=#0000bb]Enabled [/color][color=#007700]= [/color][COLOR=#0000bb]True Then
Select [/COLOR][color=#007700]Case [/color][color=#0000bb]Trim[/color][color=#007700]([/color][color=#0000bb]ListBox1[/color][color=#007700].[/color][color=#0000bb]SelectedItem[/color][COLOR=#007700])
Case [/COLOR][COLOR=#dd0000]"كروب الشياب"
[/COLOR][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]"224.5.4.6 "
[/COLOR][color=#007700]Case [/color][COLOR=#dd0000]"كروب الشباب"
[/COLOR][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]"224.5.4.8"
[/COLOR][color=#007700]Case [/color][COLOR=#dd0000]"كروب المقاعدين"
[/COLOR][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]"224.5.4.9"
[/COLOR][color=#007700]Case [/color][COLOR=#dd0000]"كروب ورد"
[/COLOR][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]"224.5.4.10"
[/COLOR][color=#007700]Case [/color][COLOR=#dd0000]"كروب طلاب"
[/COLOR][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]"224.5.4.11 "
[/COLOR][color=#007700]Case [/color][COLOR=#dd0000]"كروب مبرمجين"
[/COLOR][color=#0000bb]tbMulticastGroup[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]" 224.5.4.12"
[/COLOR][COLOR=#0000bb]End Select
ljionto[/COLOR][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#0000bb]ListBox1[/color][color=#007700].[/color][COLOR=#0000bb]SelectedItem
End [/COLOR][COLOR=#007700]If
Catch [/COLOR][color=#0000bb]ex [/color][color=#007700]As [/color][COLOR=#0000bb]Exception
End [/COLOR][COLOR=#007700]Try
[/COLOR][COLOR=#0000bb]End Sub

[/COLOR][color=#007700]Private [/color][color=#0000bb]Sub send_message_FormClosing[/color][color=#007700]([/color][color=#0000bb]ByVal sender [/color][color=#007700]As [/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]ByVal e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][color=#007700].[/color][color=#0000bb]FormClosingEventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles Me[/color][color=#007700].[/color][COLOR=#0000bb]FormClosing
[/COLOR][color=#007700]If [/color][color=#0000bb]jionbt[/color][color=#007700].[/color][color=#0000bb]Enabled [/color][color=#007700]= [/color][COLOR=#0000bb]False Then
[/COLOR][COLOR=#007700]Try
[/COLOR][COLOR=#dd0000]'Dim group As IPAddress = IPAddress.Parse(tbMulticastGroup.Text)
' [/COLOR][color=#0000bb]client[/color][color=#007700].[/color][color=#0000bb]DropMulticastGroup[/color][color=#007700]([/color][color=#0000bb]group[/color][color=#007700], [/color][color=#0000bb]255[/color][COLOR=#007700])
[/COLOR][color=#0000bb]client[/color][color=#007700].[/color][color=#0000bb]Close[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]myth1[/color][color=#007700].[/color][color=#0000bb]Abort[/color][COLOR=#007700]()
Catch [/COLOR][color=#0000bb]ex [/color][color=#007700]As [/color][COLOR=#0000bb]Exception
MsgBox[/COLOR][color=#007700]([/color][color=#0000bb]ex[/color][color=#007700].[/color][color=#0000bb]Message[/color][COLOR=#007700])
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]Try
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
[/COLOR][COLOR=#0000bb]End Sub
End [/COLOR][COLOR=#007700]Class  
[/COLOR][/COLOR]


برنامج بناء غرف محادثة للأجهزة المحمولة
كيف تصمم غرف المحادثة للأجهزة المحمولة.نفس الفكرة السابقة .عندما نصمم غرف المحادثة كل غرفة من غرف المحادثة نسميها بأسم معين ونعطيها عنوان معين ضمن نطاق Class D للعنونة كل شخص يريد ان يدخل غرفة يعمل انضمام لعنوان هذه الغرفة حتى يتحدث مع كل موجود داخل الغرفة.اذن في برمجة غرف المحادثة كل شخص يدخل غرفة محادثة يعمل انضمام الى المجموعة الموجودة في الغرفة على عنوان الغرفة حتى يرسل ويستلم من المجموعة وهذا ما يحدث بظبط في غرف المحادثة واكيد يتم تحديد لكل غرفة عنوان معين من قبل الشركة الخاصة ببرنامج المحادثة .وبذالك يستطيع محادثة كل المتواجدين داخل الغرفة
لنصمم مشروع Smart Device جديد كما في الشكل
كما نلاحظ كونا قائمة بأسماء الغرف الموجودة داخل ListBox1 لعرض الغرف في داخلها وكل شخص جديد يدخل يختار غرفة لكي ينضم اليها وندرج Button انضمام لمجموعة نسميها jionbt وندرج Button للأرسال نسميها send_button. وندرج اداة نص textbox لعنوان الغرفة نسميها tbMulticastGroup وندرج اداة نص لمنفذ الغرفة نسميها tbPort وندرج اداة نص لأسم الشخص المختار داخل الغرفة نسميها tbname وندرج اداة نص لأستلام المحادثة من بقية اعضاء الغرفة نسميها tbMessage وندرج اداة نص لكتابة النصوص وارسالها tbMessagesend
نريد عند الضغط على اسم مجموعة يعرف عنوانها داخل tbMulticastGroup لذالك تخزن عناوين كل غرفة وعندما نختار غرفة يظهر عنوانها وداخل حدث ListBox1_SelectedIndexChanged
والكود نفس البرنامج السابق



-------------------------------------------------
قائمة كتبي

خطوة بخطوة نحو قاعدة بيانات ترضي العميل بالفجوال بيسك دوت نت



خطوة بخطوة لتعلم لغة سي وسي بلاس


بروتوكولات الشبكات TCP,UDP,IP وبناء التطبيقات بالبروتوكول الملائم فيجوال بيسك دوت نت

}}}}
تم الشكر بواسطة:
#2
الأمثلة في المرفقات

------------------------------------------------
قائمة كتبي

خطوة بخطوة نحو قاعدة بيانات ترضي العميل بالفجوال بيسك دوت نت



خطوة بخطوة لتعلم لغة سي وسي بلاس


بروتوكولات الشبكات TCP,UDP,IP وبناء التطبيقات بالبروتوكول الملائم فيجوال بيسك دوت نت



الملفات المرفقة
.rar   chat Room -UDP-Sockets -Multicast.rar (الحجم : 115.91 ك ب / التحميلات : 57)
.rar   chat room mbile.rar (الحجم : 101.8 ك ب / التحميلات : 48)
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [نقاش] أرجو التصويت لابدا شرح برمجة اطار محادثة بين طرف واطراف على الاتصال المحلي او العام سعود 13 3,649 21-06-16, 09:31 PM
آخر رد: سعود
  [VB.NET] تنسيق البينات بناء على المدخلات datagridview vb net فيديو أحمد النجار 0 597 24-01-15, 07:42 PM
آخر رد: أحمد النجار
  بناء مكتبة dll (مثال عملي، مربعات حوار بالعربية) RaggiTech 0 462 03-10-12, 03:41 AM
آخر رد: RaggiTech

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


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