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

JKelanyChat برنامج دردشة بالجافا

بدأه Mahmoud Kelany في 8 يونيو 2011 · 25 رد · 7,907 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كيفيكم يا احباب هذا المنتدى

احب ان اشارككم اليوم ببرنامج شات TCP

البرنامج شكله مقتبس من الياهو

لكنه من تصميمى الخاص

البرنامج به العديد من الاشياء التى ممكن الاستفاده منها

المشروع عباره عن Client , server and Web server

سوف اقوم بارفاق الملفات الخاصه بهذا المشروع

وسوف اقوم ايضا بارفاق الـ Presentation الخاصه بالمشروع

اتمنى ان اجد نقدكم فى المشروع لمزيد من التقدم باذن الله

لتحميل الملفات

JKelanyChat.rar

Jkelany Chat Project Presentation.rar

3 −1

Software Developer
Mahmoudkelany.com


 

#2

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

مبدع يامحمود! أسأل الله أن ينفع بك!

بالنسبة لليوزر والباسوورد .. انت وضعت التسجيل في تطبيق الويب ؟ للأسف ما اشتغل معاي ملف الـ war < بنزبطه :wink:

لي عودة بإذن الله ..

الله يعينك علي يامحمود :blush:

+1

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#3

ما شاء الله عليك يا اخ محمود والله دائما مبدع

بس اخي ما هي شروط عمل البرنامج يعني هل يجب عمل حساب وهكذا

ويا ريت تعطينا شرح عن ىليات عمل البرنامج

وشكرا

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#4

مبدع يا محمود كالعادة

بارك الله فيك :) ونفع بك المسلمين

سأل الممكن المستحيل : أين تقيم ؟ فأجابه في أحلام العاجز

----------------------------------------

نمضى النصف الأول من حياتنا بحثاً عن المال والنجاح والشهرة ونمضى

النصف الثانى منها بحثاً عن الأطباء

-----------------------------------------

شخصٌ يرى ذا الكون وهو جالسٌ ويجوب هذي الأرض بين الدول

#5
JavaPorgrammer كتب:

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

مبدع يامحمود! أسأل الله أن ينفع بك!

بالنسبة لليوزر والباسوورد .. انت وضعت التسجيل في تطبيق الويب ؟ للأسف ما اشتغل معاي ملف الـ war < بنزبطه :wink:

لي عودة بإذن الله ..

الله يعينك علي يامحمود :blush:

+1

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

يارب جميعا ان شاء الله

بس مش فاهم تقصد ايه ان اليوزر والباسور مش شغاله

التطبيق يعمل كاملا

vector_ever كتب:

ما شاء الله عليك يا اخ محمود والله دائما مبدع

بس اخي ما هي شروط عمل البرنامج يعني هل يجب عمل حساب وهكذا

ويا ريت تعطينا شرح عن ىليات عمل البرنامج

وشكرا

لاستخدام الشات لابد وان تقوم بتسجيل حساب لك

عباره عن يوزر اسمه مثلا guest@jkelany.com والباص ورد اللى تحطها

وهكذا

وبعد ذلك يمكنك استخدام الشات والدخول عليه

يمكنك استخدام مثلا الاكونت التالى

username : eng.hamzawy

Password : 0164784781

وبعدها ستجد الاصدقاء الخاصين بك

يمكنك معرفه المزيد من الـ persentation

بالنسبه لاليه عمل البرنامج انا لم استطع شرح اى شىء الان لانشغالى بالامتحانات

بس الموضوع كله معتمد على الـ Socket API , Threads , I/O , GUI , Serialization

قوم بتفحص الكود وستجد ذلك

بالتوفيق

Ahmed Abd El-Rasoul كتب:

مبدع يا محمود كالعادة

بارك الله فيك :) ونفع بك المسلمين

اللهم امين جميعا يارب

بغض النظر عن ما ساقوله الان فانا تهمنى المنفعه العامة

لكن لم اتوقع ان يكون الموضوع يكون له تقييم بهذه الطريقه وهو الحصول على 0.6

وكأنه رابط لموقع وليس برنامج

1

Software Developer
Mahmoudkelany.com


 

#6

متميز دائما يا محمود باشا بس توقيت تنزيله مثل هذا البرنامج صعب فلن استطيع قراءته وابداء التساؤات فيه .. ولكن

كلها 3 اسابيع وابتدى اقراه ان شاء الله .. 012.gif

no-pain-no-gain.jpg

اذا كنت لا تعلم الى اين تذهب... فكــل الطرق تؤدى الى هناك

#7
The expendable كتب:

متميز دائما يا محمود باشا بس توقيت تنزيله مثل هذا البرنامج صعب فلن استطيع قراءته وابداء التساؤات فيه .. ولكن

كلها 3 اسابيع وابتدى اقراه ان شاء الله .. 012.gif

ربنا يخليك يا ابو حميد

انا عارف ان وقت تنزيله صعب اووى

وكمان بالنسبه ليا انى ادخل ارد

لكن انا بزهق من المذاكره لانى مش واخد على مذاكره المواد بتاعت الكلية دى

فبدخل الاقى ردود فبرد عليها

وان شاء الله ربنا يسهل وبعد الامتحانات ننشط الموضوع مره اخرى

ومنتظر تساؤلاتك ان شاء الله

وباذن الله بعد الامتحانات هأحاول اقول ايه اللى بيحصل ان شاء الله

Software Developer
Mahmoudkelany.com


 

#8

أولاً: نرى الكثير من برامج المحادثة فما الذي تعتتقد أنه يميز برنامجك؟

ثانياً: إذا كنت صنعت البرنامج للتعلم (وهذا هدف يعتبر) فما الذي تعلمته بالضبط؟ وهل هناك متطلبات سابقة لفهم البرنامج؟

سأطلع على الشيفرة في أقرب وقت إن شاء الله

تحياتي

1
حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#9
علاء الصالحي كتب:

أولاً: نرى الكثير من برامج المحادثة فما الذي تعتتقد أنه يميز برنامجك؟

اعتقد ان برنامجى متكامل

حيث اننى قومت باستخدام اكثر من شىء فى التعامل

وايضا اكثر من تقنيه للتعلم

وانا معرفش ايه اللى انت شوفته علشان احكم على ايه اللى يميز برنامجى

لكن انت اللى هتحكم هو بيمتاز بايه او انه تقليدى

ثانياً: إذا كنت صنعت البرنامج للتعلم (وهذا هدف يعتبر) فما الذي تعلمته بالضبط؟ وهل هناك متطلبات سابقة لفهم البرنامج؟

انا تعلمت

طبعا GUI للتعامل مع اازاى تعمل Custom List بصورتين واسم وComboBox بمعنى اصح تصميم GUI

تعلمت TCP networks

ازاى اعمل Client , server

كيفيه ارسال Serializable object

كيفية التعامل مع الداتا بيز

واشياء اخرى بسيطه مثل الـ TrayIcons , Hashing password

بالنسبه للـwebsite طبعا JSP , Servlets

سأطلع على الشيفرة في أقرب وقت إن شاء الله

يمكنك الاطلاع على الشفره وعلى البرنامج بوجهه عام وستجد اذا كان متميز ام انه مكرر

علما باننى من قام ببرمجه كل جزئية بداخله

براحه عليا يا عم علاء :)

Software Developer
Mahmoudkelany.com


 

#10

مالك يا عم محمود

أنا بحاول أعصرك علشان أطلع منك مبرمجين صغار :)

قصدي بحاول أني أخلي الشباب المبتدئين يستفيدوا من مدرستك

لأنه ماشاء الله عليك من الناس الي نبغوا وبقوة لدينا في القسم

أتمنى لك التوفيق

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#11
علاء الصالحي كتب:

مالك يا عم محمود

أنا بحاول أعصرك علشان أطلع منك مبرمجين صغار :)

قصدي بحاول أني أخلي الشباب المبتدئين يستفيدوا من مدرستك

لأنه ماشاء الله عليك من الناس الي نبغوا وبقوة لدينا في القسم

أتمنى لك التوفيق

تحياتي

ههههههههههههه

ماشى يا عم علاء :)

ربنا يسهل واطلع مبرمجين صغيرين كدا ههههه

ما انا تفهمت قصدك يا استاذنا

واشكرك على ذلك :)

Software Developer
Mahmoudkelany.com


 

#12

السلام عليكم

ما رأيك لو عملنا أداة برمجية من هذه الأداة

دعنا نسميها أداة برمجة جماعية

بحيث يمكن للجميع المشاركة في الشيفرة

كما يمكن لهم المحادثة بإدارة رئيس الفريق

ما رأيك؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#13

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

بعتذر على التاخير فى الرد كان عندى امتحان اليوم ولسه مخلص

المهم انا مش فاهم تقصد ايه انه يكون اداه برمجية

لكن انا احب المشاركه والتطوير

لان فالاول والاخر هتتعلم حاجات كتير ليك ولغيرك وللمشاركين وللمتفرجين كمان ههههههه

فانا لا امانع فى اى شىء لكن وضح لى ماذا تقصد باداه برمجيه ؟

يعنى ايه يمكن لهم المحادثه بادارة رئيس الفريق

تقصد انك عاوز تعمل الشغل عباره عن فرق عمل ؟

منتظر ردك وانا لا امانع التطوير والعمل فانا اعرض الكود للاستفاده ولابداء الاخطاء وعرض الاسئلة

Software Developer
Mahmoudkelany.com


 

#14

عندما نتكلم عن اجتماعات فريق برمجة لنقاش نقطة معينة

فإننا نتكلم عن اجتماعات تحتاج إلى طرح الأفكار الرسم الكتابة الصوت وأمور أخرى كثر

الكثير من الإشكاليات تواجه هذه الاجتماعات لو كانت على أرض الواقع

ما بالك لو كانت على البيئة الافتراضية

نريد البحث عن حلول لهذه الاجتماعات

الثانية وهي الأصعب إيجاد حل لمشاكل التعديل على المستندات في نفس الوقت ما لم يكن التعديل على نفس المكان

SVN يقوم بهكذا شيء لكنه يتطلب عمل اعتماد لهذه الطلبات

على كل هذه صعبة جداً تحتاج إلى تفكير أكثر

أعتقد الفكرة الأولى أكثر قابلية للتنفيذ

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#15

تمام

شىء جميل

زى مثلا فى الياهو هناك بيئة خاصه تقوم بعمل رسم بينك وبين الطرف الاخر

اعتقد انها هتكون سهله التعامل هنا

الصوت هيحتاج VOIP

ما الواجب فعله الان

يعنى ايه اللى ممكن نطوره

هل سنحتاج لتعديلات على قاعده البيانات لانها كان مبسطه جدا؟؟

Software Developer
Mahmoudkelany.com


 

#16

في الأول نكون فريق ثم نضع أفكار

ما رأيك لو تطرح موضوع تطرح فيه موضوع المشروع الجماعي

وترى إذا كان هناك مهتمين للعمل في هكذا مشروع

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#17

منذ مدة طويلة جدا .. قد تزيد عن العام لم أطل على قسمي المفضل قسم لغة الجافا , و عندما أعود أجد هذه الأفكار الإبداعية :cry:

على كل ,,

مشروع متميز أخي محمد من أفكاره العامة على الرغم من عدم تجربتي للبرنامج , اجد فيه الكثير من الأمور التي تفيد جميع الأعضاء.

لن أطلب منك شرح البرنامج الان .. لكن أتمنى أن تضع سيناريو بسيط لوصف طريقة عمل البرنامج و كيفية الوصول لقاعدة البيانات.

اقتباس
السلام عليكم

ما رأيك لو عملنا أداة برمجية من هذه الأداة

دعنا نسميها أداة برمجة جماعية

بحيث يمكن للجميع المشاركة في الشيفرة

كما يمكن لهم المحادثة بإدارة رئيس الفريق

ما رأيك؟

تحياتي

إن فكرتم في ذلك , فاعتبرني من المشاركين , لاني أحبب أن أجدد عهدي مع لغة الجافا

#18
MKSoft كتب:

منذ مدة طويلة جدا .. قد تزيد عن العام لم أطل على قسمي المفضل قسم لغة الجافا , و عندما أعود أجد هذه الأفكار الإبداعية :cry:

ربنا يخليك يارب :)

اشكرك على هذه الدفعه القوية :)

على كل ,,

مشروع متميز أخي محمد من أفكاره العامة على الرغم من عدم تجربتي للبرنامج , اجد فيه الكثير من الأمور التي تفيد جميع الأعضاء.

لن أطلب منك شرح البرنامج الان .. لكن أتمنى أن تضع سيناريو بسيط لوصف طريقة عمل البرنامج و كيفية الوصول لقاعدة البيانات.

إن فكرتم في ذلك , فاعتبرني من المشاركين , لاني أحبب أن أجدد عهدي مع لغة الجافا

بالفعل فكرنا فى ذلك

وتم تثبيت الموضوع هنا

http://www.arabteam2...howtopic=243770

اجابتى باللون الاحمر فوق

طريقة الوصول لقاعده البيانات هيكون عن طريق رسائل Serialzable

تصل الى السيرفر يحدد نوعها

وبناء على نوعها او محتواها يقوم بعمل شغله معينه

يعنى مثلا عندى رساله اسمها

LoginMessage

ترسل لسيرفر تحتوى على اليوزر والباص ورد

يقوم السيرفر باستقبالها

فى الكلاس HandleClientRequest

ستجد داله processProtocolInput هى المسئوله عن معرفه نوع الرساله المرسلة

public Message processProtocolInput(Message message) {
    	if (message instanceof LoginMessage) {
        	return loginMessage(message);
    	} else if (message instanceof LogoutMessage) {
        	return logoutMessage(message);
    	} else if (message instanceof ChatMessage) {
        	return chatMessage(message);
    	} else if (message instanceof UpdateUserDetailsMessage) {
        	return updateUserMessage(message);
    	} else if (message instanceof DeleteFriendMessage) {
        	return deleteMyFriendMessage(message);
    	} else if (message instanceof AddFriendMessage) {
        	return addFriendMessage(message);
    	}
    	return message;
	}

مثلا ان كانت LoginMessage يقوم باستدعاء الداله

private Message loginMessage(Message message) {
    	LoginMessage loginMessage = (LoginMessage) message;
    	EmailService emailService = new EmailService();
    	Email login = emailService.login(loginMessage.getEmail(), loginMessage.getPassword());
    	if (login == null) {
        	return new BadLoginMessage();
    	} else {
        	FriendsEmailService friendsEmailService = new FriendsEmailService();
        	FriendsEmails[] selectMyFriends = friendsEmailService.selectMyFriends(login.getEmail());
        	int id = emailFoundBefore(login);
        	if (id != -1) {
            	try {
                	ServerListen.emailsSockets.get(id).
                        	getOutputStream().
                        	writeObject(new MultiEmailLoginMessage(
                        	ServerListen.emailsSockets.get(id).client.toString()));
                	OutputFrame.appendText(login.getEmail() + " duplicate login in another place "
                        	+ ServerListen.emailsSockets.get(id).client.toString() + " at " + new Date());
                	ServerListen.emails.remove(id);
                	ServerListen.emailsSockets.remove(id);
                	ServerListen.informAll();
            	} catch (IOException ex) {
                	OutputFrame.appendText(ex.toString());
            	}
        	}
        	ServerListen.emails.add(login);
        	myEmail = login;
        	OutputFrame.appendText(myEmail.getEmail() + " has login at " + new Date());
        	return new SuccessfulLoginMessage(login, selectMyFriends);
    	}
	}

هذه الداله تقوم بالدخول على قاعده البيانات التى تعمل على السيرفر

وتقوم بعملية الـ login واذا كانت صحيحه يقوم باختيار الاصدقاء

ويقوم بارسال رساله SuccessfulLoginMessage تحتوى على بيانات اليوزر والاصدقاء

وان كان هناك خطأ فى البيانات يرسل رساله BadLoginMessage

وان كان المستخدم قد دخل من جهاز اخر فى نفس الوقت اللى نفس الاكونت داخل بيه من جهاز اخر

يرسل له رساله MultiEmailLoginMessage

فى الجانب الاخر لدى الكلينت يقوم باستقبال هذه الرسايل ويفعل شىء معين بناء عليها

هناك بعض الامور ستجدها داخل مثلا داله الـ loginMessage

مثل امر

OutputFrame.appendText(login.getEmail() + " duplicate login in another place "
                        	+ ServerListen.emailsSockets.get(id).client.toString() + " at " + new Date());

هذا فقط لامر الـ Log file الخاص بالسيرفر لاننى اقوم بتسجيل كل حركه تحصل فى السيرفر

اتمنى ان تكون اتضح الامر ولو لشىء بسيط

واتمنى ان تعذرنى لانشغالى بامور الامتحانات فقط

وان شاء الله هنقوم بشرحه بعد الامتحانات

والرد على اى استفسارات او اى اسئلة

شرفنى وجودك وردك :)

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 16 يونيو 2011 في 21:49

Software Developer
Mahmoudkelany.com


 

#19

سؤال على الهامش أخ محمد ::

فكرة Client Server مفهوم .. لكن ما هي فائدة Web Service التي صممتها ؟؟ هذا هو سؤال الحقيقي

#20

قصدك الـ Webserver

انا عملته فقط للتسجيل

وعرض البروفيل والاصدقاء

واضافه وحذف الاصدقاء

الى الان هذه هى فائدته

يمكن الاستغناء عن كل هذا

لكن التسجيل فقط على الموقع

كنت اود ان اقوم بعمل Chat applet من على الموقع لكن لم يكن لدى وقت لذلك

Software Developer
Mahmoudkelany.com


 

#21

جزاك الله خيرا أخ محمود

انا حقيقة ما جربت البرنامج ولكن رأيت الwebserver وأعجبنى

وكنت طالب منك فى وقت فراغك تشرح طريقة صنع هذا المشروع (webserver)

فانا أذاكر الآن java ee

فأكون شاكر لو انت شرحت

وجزاك الله خيرا على مجهودك مرة ثانية.

تم تعديل هذه المشاركة بواسطة elwaly في 25 يونيو 2011 في 00:14

#22
elwaly كتب:

جزاك الله خيرا أخ محمود

انا حقيقة ما جربت البرنامج ولكن رأيت الwebserver وأعجبنى

وكنت طالب منك فى وقت فراغك تشرح طريقة صنع هذا المشروع (webserver)

فانا أذاكر الآن java ee

فأكون شاكر لو انت شرحت

وجزاك الله خيرا على مجهودك مرة ثانية.

واياكم يارب

اخى الكريم بالنسبه لى انا Web Developer وليس Web Desgin

فما على اذن لكى اقوم باخراج موقعى بشكل جيد

قومت بالبحث على النت عن HTML Templetes وجدت الكثير اخترت واحده وقومت بالتعديل عليها تماما

ثانيا

انا استخدمت الـ Servlets , JSP فى التصميم

وان كان لدينا الوقت كثير سوف اقوم بشرح الـ Web Server ان شاء الله

Software Developer
Mahmoudkelany.com


 

#24

يا حبيبي .... مشاركات بطير العقل ... طيرتني معها

بارك الله فيكم واتمنى أن أستفيد من خبرتكم واحد واحد ... ما شاء الله

الله يبارك فيكم أجمعين

Moving-Sector-Triggers.gif
#25

اريد شرح البرنامج

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