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

المحافظة على تنسيق التكست عند إرسالة عبر الشبكة

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

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

أنا عملت برنامج شات يتم فيه إرسال النصوص (Text) ، ولكن النص الذي أرسله يصل إلى الطرف الأخر بتنسيق مختلف من حيث لون الخط وحجم الخط .

أظن سؤالي واضح : كيف أرسل النص عبر الشبكة بنفس التنسيق؟

#2

وعليكم السلام

شيء طبيعي ان لا يتم ارسال لون النص مع النص في حالة التعامل مع الـTextbox, الحل هو باستخدام RichTextBox إذ يمكن حفظ التنسيق كاملا على Stream ثم تحويله إلى Bytes وإرساله عبر الشبكة وكما يلي كمثال في حالة الإرسال:

TcpClient myclient = new TcpClient (txt_host.Text,7000);
NetworkStream myns = myclient.GetStream ();
MemoryStream ms = new MemoryStream();
richTextBox1.SaveFile(ms, RichTextBoxStreamType.RichText);
myns.Write(ms.ToArray(), 0, ms.ToArray().Length);
myns.Close ();
myclient.Close ();

وكما يلي في حالة الإستقبال:

TcpListener mytcpl; 
Socket mysocket;
NetworkStream myns;

mytcpl = new TcpListener (7000);
mytcpl.Start ();
mysocket = mytcpl.AcceptSocket ();
myns = new NetworkStream (mysocket);
byte[] buffer = new byte[1024];
myns.Read(buffer,0,1024);
MemoryStream ms = new MemoryStream(buffer);
richTextBox1.LoadFile(ms, RichTextBoxStreamType.RichText);
mytcpl.Stop();

Rich_chat.JPG

المثال في المرفقات

Richtext_Chat.zip

تم تعديل هذه المشاركة بواسطة فادي عبدالقادر في 10 مارس 2007 في 02:30

#3

جزاك الله خير أخي فادي ، البرنامج ممتاز يعمل بشكل ممتاز ولكن هو يستخدم بروتوكول TCP بينما أنا أستخدم بروتوكول UDP broadcast ، ياليت تساعدني في تعديل هذا الكود .

كود ا لإرسال


'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.Default.GetBytes(RichTextBox22.Text)
s.SendTo(sendbuf, IEP)

كود الأستقابل


Sub StartListener()
listener = New UdpClient(Port)
Dim groupEP As New IPEndPoint(IPAddress.Any, 0)
While Not done
Dim bytes As Byte() = listener.Receive(groupEP)
RichTextBox1.Text = Encoding.Default.GetString(bytes, 0, bytes.Length)
End While
End Sub
#4

السلام عليكم

يوجد لديك بعض النقص في الكود منه انه في حالة الإرسال كـBroadcast فيجب تفعيل ذلك من الـSocket Option على اي حال التعديل في المرفقات

موفق إن شاء الله

UDP_Richtext_Chat.zip

#5

اخوتي محتاج برنامج شات لاكثر من مستخدم يحدد المستخدم اللي يرسل له من list

موقوف من المشاركة لقلة الأدب

============================

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

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

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

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

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

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