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

ارسال الكائنات عبر الشبكة

بدأه zaka88 في 27 ديسمبر 2011 · 5 رد · 1,415 مشاهدة · في برمجة الشبكات والتطبيقات الموزعة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ارجو المساعدة في كيفية ارسال كائنات برمجية عبر الشبكة

اريد بالضبط ارسال DataTable به معلومات مستخرجة من قاعدة البيانات

لدي استفسار ثانِ

ما الفرق بين الاكواد التالية:

(1)


Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8001);
sock.Bind(ipe);
byte[] buffer = System.Text.ASCIIEncoding.ASCII.GetBytes("Message");
try
{
sock.Connect(ipe);
}
catch (Exception)
{
sock.Close();

return ;
}
sock.Send(buffer);

(2)


TcpClient Get_list_client = new TcpClient(textBox1.Text, 5020);
NetworkStream Get_list_ns = Get_list_client.GetStream();
StreamWriter Get_list_sw = new StreamWriter(Get_list_ns);
Get_list_sw.WriteLine("Message");
Get_list_sw.Close();
Get_list_ns.Close();
Get_list_client.Close();

ما اقصده هو ما الفرق بين استعمال TcpClient او عدمه؟

وشكرا مقدما

#2

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

اخي يمكنك استخدام مفهوم الـ Serialization لارسال كائنات عبر الشبكه, اما بالنسبة للجزء الثاني من سؤالك فالكود الاول سيتخدم البرتوكول TCP عبر الـ Low Level Class اما الكود الثاني فهو يستخدم الـ Helper Class, ركز جيدا في الكود الاول ستلاحظ انه يحدد نوع البروتوكول TCP او UDP وكذلك Stream او Datagram, اما الفئات المساعدة TCPListener و TCPClient هما فئتانا مبنية على الفئة Socket

1

.:: Wish to become better and better ::.

#3

اذا كنت تريد كيفية ارسال الobject بالشبكة

مثلما قال لك الاخ vb helper

وهذا الرابط ممكن يفدك في الموضوع

الرابط

1

291964_260506123967115_206850989332629_1001538_45132_n.jpg

اللهم إني أعوذ بك من علم لا ينفع ، ومن قلب لا يخشع ، ومن نفس لا تشبع ، ومن دعوة لا يستجاب لها

#4

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

الله يفتح عليكم

#5

لقد استخدمت الدالتين الموجودتان بالرابط وهما





/***************************************************/
public byte[] SerializeData(Object o)
{
MemoryStream ms = new MemoryStream();
BinaryFormatter bf1 = new BinaryFormatter();
bf1.Serialize(ms, o);
return ms.ToArray();
}

public object DeserializeData(byte[] theByteArray)
{
MemoryStream ms = new MemoryStream(theByteArray);
BinaryFormatter bf1 = new BinaryFormatter();
ms.Position = 0;
return bf1.Deserialize(ms);
}
/**********************************************/

لكن عند التنفيذ بقي هناك اخطاء صادرة عن الدالتين لم افهمه وهو:



Error 1 An object reference is required for the non-static field, method, or property 'ConsoleApplication3.Program.SerializeData(object)'
Error 2 An object reference is required for the non-static field, method, or property 'ConsoleApplication3.Program.DeserializeData(byte[])'

ما الحل؟؟

تم تعديل هذه المشاركة بواسطة zaka88 في 29 ديسمبر 2011 في 11:57

#6

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

اخي قم بكتابة الكلمة static بعد public لأنك شغال في Console Application

1

.:: Wish to become better and better ::.

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

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

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

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

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