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

معالجة الرسائل بين الclient & ال server

مغلق
بدأه m_ajed في 14 أغسطس 2004 · 4 رد · 636 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم:

عندي برنامج اسهم ابغى ارسل رساله من الclient تحتوي على معلومات(اسم الشركة-كمية الاسهم-قيمة السهم) الى ال server لكن في ال server كيف اقسمها و عرف هذا int او float او string

ياليتكم تساعدوني في هالمشكله وشكرا

#2

سهلة.... هذا اسمه بروتوكول(PROTOCOL) و هو يحدد الاجزاء التي ستحتوي على معلومات معينة

مثلا انت تقوم بعمل بروتوكول لوحدك حيث ان الكلمة الاولى هي الامر و الثانية هي اسم الشركة و الثالثة كمية الاسهم و الرابعة قيمة السهم... تكون هكذا:

اذا اراد الclient من الserver ان يقوم باضافة هذه المعلومات:

ADD MyCompany 50 3.5\r\n

حيث ان add هي امر الاضافة.

MyCompany هو اسم الشركة.

50 هو عدد الاسهم

3.5 هو قيمة السهم

\r\n هو new line في السي++

وتقوم بعمل text parsing اي تقسيم النص الى عده اجزاء علما بان الحرف الفاصبل بين كل قيمة هو مسافة(space) و تضعها في array و اخذ كل قيمة على حدا مثل ال split لإي الفجوال بيسك

array = split(mydata," ")

array(0) will be the command

array(1) my company

etc

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#3

احسنت هيك الواحد يطرح السؤال مو مثل المشاركة الماضية حين طلبت البرنامج بالكامل!!!!

شوف مشان السترينغ الامر واضح وسهل لان هو يستقبل على انه سترينغ

مشان الـ int يمكنك تحويل الـ String الى int بواسطة الصف

java.lang.Integer.parseInt("put the int here");

يعني مثلا تضع "89756 " هي تاتي و كانها ستريتغ بواسطة هذا الصف تصبح int و تستطيع التعامل معها في برنامجك المستقبل على انها int

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#4

انا ارى ان يتم استخدام ال Object Serializaton عبر الSocket فهو افضل ومستخدم في برامج التجارة الالكترونية كالمزادات مثلا .فبدل ارسال كائن نص او رقم ,ترسل كائن من نوع Client مثلا ثم تقوم باخذ الخصائص عند وصوله الى الجهة الثانية :

Client c = new Client();
c.Name = "name";

الان تقوم بارسال الكائن عبر السوكت مثلا باستخدام WriteObject ثم تستقبله في جهة السيرفر باستخدام ReadObject و تحصل على خاصية Name مثلا .

اقرأ المقال التالي فهو مفيد في هذا المجال:

http://java.sun.com/developer/technicalArticles/ALT/sockets/

#5

اشكركم على الردود ..

لكن وجدت طريقة اسهل للتقسيم :

StringTokenizer spilit=new StringTokenizer(message);

while(spilit.hasMoreTokens())

{

spilit.nextToken();//the word of the order

id=Integer.parseInt(spilit.nextToken());

quant=Integer.parseInt(spilit.nextToken());

}

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

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