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

مشكلة في إستخدام Broadcast

مغلق
بدأه الغانمي في 18 يناير 2007 · 2 رد · 704 مشاهدة · في برمجة الشبكات والتطبيقات الموزعة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الســــلام عليكم ورحمة الله وبركاته

أنا عملت برنامج شات جماعي طبعاً يقوم بإرسال التكست إلى كل الأجهزة وأستخدمت بروتوكول UDP وأستخدمت في الأرسال طريقة Broacast إي أني أرسل

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

، أما النصوص التي باللغة الإنجليزية لا مشكلة فيها فهي تظهر بدون أي مشاكل .

هذا الكود يا ليت أحد يساعدني

 Dim Port As Integer = 2323

	Dim ipEntry As IPHostEntry = Dns.GetHostByName(Environment.MachineName)
	Dim IpAddr As IPAddress() = ipEntry.AddressList

	Dim HostName As String = Dns.GetHostName

#Region " StartListener "
	Sub StartListener()

		listener = New UdpClient(Port)
		Dim groupEP As New IPEndPoint(IPAddress.Any, 0)
		Try
			While Not done
				Dim bytes As Byte() = listener.Receive(groupEP)
				Dim str As String = Encoding.ASCII.GetString(bytes, 0, bytes.Length)
				Dim i As Integer

				For i = 0 To ListBox1.Items.Count
					If str.StartsWith("L") Then
						If ListBox1.Items.Contains(str.Remove(0, 1)) Then
							ListBox1.Items.Remove(str.Remove(0, 1))
						End If
					ElseIf str.StartsWith("C") Then
						If Not ListBox1.Items.Contains(str.Remove(0, 1)) Then
							ListBox1.Items.Add(str.Remove(0, 1))
						End If
					Else
						RichTextBox1.Text = str
					End If
				Next i
			End While
		Catch e As Exception
		End Try
	End Sub
#End Region
	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		'Send My Messag
		Dim s As New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)
		Dim broadcast As IPAddress = IPAddress.Parse("192.168.2.255")
		'
		Dim IEP As New IPEndPoint(broadcast, Port)
		Dim sendbuf As Byte() = Encoding.ASCII.GetBytes(HostName + ": " + RichTextBox2.Text)
		s.SendTo(sendbuf, IEP)

		RichTextBox1.Focus()
		RichTextBox1.SelectAll()
		RichTextBox2.Focus()
	End Sub
#2

الـ ASCII لا يدعم عملية ترميز الأحرف العربية لذلك لا بد من استخدام الـUnicode بدلا منه وسيعمل بشكل سليم إن شاء الله

#3

شكراً أخي فادي على الإجابة ، أنحلت ا لمشكلة ولكن بإستخدام .Default

اقتباس
Dim ByteText As Byte() = Encoding.Default.GetBytes(Text)

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

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