تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

صفحة 1 من اصل 2 1, 2  الصفحة التالية

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أحمد مناع في الجمعة أغسطس 09, 2013 9:35 pm

بسم الله الرحمن الرحيم 

أهلا وسهلا بكم إخوانى الكرام و كل عام وانتم بخير ....اليوم إن شاء الله تعالى سنتعلم سويا كيفية أنشاء تطبيق الدردشة للجولات . باستخدام هذا التطبيق يمكنك الدردشة بعضها البعض إذا الجهازين على الشبكة نفسها. ...و في الواقع فكرة هذا التطبيق ستقوم على أنه سيحتوي هذا التطبيق واجهة خادم الدردشة Chat Server  وواجهة عميل الدردشة Chat Client ..... و عند تشغيل خادم الدردشة، يمكن ربط جهاز الآخر مع الجهاز السابق باستخدام تطبيق دردشة العميل.



دعونا نفهم السيناريو باستخدام الصور ....لكى يتم تشغيل التطبيق لديك يجب أولا تشغيل خادم الدردشة (الشكل 2). لأن العميل بحاجة إلى خادم تشغيل للاتصال.....وعندما يتم تشغيل خادم الدردشة يقوم بالدخول إلى الهاتف المحمول الخاص بك و يقوم بالتأكد من وجود عميل الدردشة على نفس الشبكة ليقوم بعدها بتوصيل الأجهزة بعضها البعض من خلال عنوان IP الجهاز





في واجهة الأولي من التطبيق خادم الدردشة سنقوم بانشاء زر امر وليكن بأسم Start.....و فية سنقوم بكتابة التعليمات البرمجية لتشغيل الخادم، عند النقرعلى الأمر ابدأ على الشاشة. فيقوم بالبحث عن العميل وعرض عنوان IP الجهاز كما في الشكل 3. لا يزال أنت لا تحتاج إلى تشغيل تطبيق العميل الدردشة.




إذا لم تكن شبكة متاحة فإنه لن يستطيع الخدام تحديد عنوان IP لذلك سوف تحصل العنوان 127.0.0.1 وهو ما يعني المضيف المحلي. وبعد الحصول على عنوان IP الخادم، يتم بدء تشغيل واجهة العميل


وفى واجهة العميل، وسوف نقوم بتوفير مساحة لكتابة وإرسال عنوان IP لملقم. وهذا يعني انك تقوم بإرسال طلب إلى خادم دردشة على التوالي، التي تريد الاتصال به لفتح منفذ لعمل الدردشة بين الجهازين ...و سنتخدم المنفذ الخاص لارسال و استقبال الرسائل القصيرة sms فى الجوال


الشكل 4 أعلاه يوضح لك فى واجهة العميل طريقة إدخال عنوان IP الخادم وإرسال الطلب إلى الملقم عن طريق الضغط على الامر اتصال.لتشغيل واجهة العميل و الخادم و ربط بعضها البعض بنجاح، وتحصل على رسائل التنبيه على كلا الجهازين كما في الشكل 5. الآن اتصالات مستعدون وأنت أيضا على استعداد للدردشة ويبين الشكل 6 واجهات الدردشة من كل من العميل وتطبيقات الخادم. 



ويمكن لأي شخص بدء دردشة لأن رسالة تنبيه يؤكد أن لهما صلة.لذلك سنقوم بانشاء حقل نصى زر إرسال كما في الشكل 7


ثم يمكنك ان ترى الكتابة النصية التي يتم إرسالها من قبل الطرف الآخر بالحقل النصي الخاص بك كما في الشكل 8. قد سنقوم بتقديد مقدار الأحرف في رسالة واحدة إلى 160 حرف ....وذلك لانه لا يمكنك إرسال أكثر من 160 حرفا في محادثة واحدة من خلال هذا المنفذ .


تعالوا الان نقوم بتنفيذ ما سبق برمجيا ......فى البداية سأعرض عليكم الفئات و الواجهات التى سيتم أستخدامها فى التعليمات البرمجية .....بالنسبة للفئات هى على النحو التالى :

DataInputStream
DataOutputStream
InputStream
InterruptedException
OutputStream
StringBuffer
StringItem

اما الواجهات سنتخدم اواجهات الشبكات التالية :



ServerSocketConnection
SocketConnection



وتلك الفئات و الواجهات قد قمنا بشرحها فى درس تعرف على الحزمة JAVA.IO و كيفية أستخدامها و الدرس : التعامل مع الشبكات فى الجافا Java Networking....لذلك سأعتبرك لديك معلومات عن كيفية استخدام تلك الفئات و الواجهات ...أما تطبيق الدردشة الذى سنقوم بإنشاء سيحتوى على 4 فئات وهم على النحو التالى :


1_ MessageReceiver.java .....و الهدف منها ان يقوم باستلام الرسائل من الطرف الاخر

2_MessageSender.java ........و الهدف من تلك الفئة هو ارسال النصوص الى الطرف الاخر

3_ChatClient.java ..............و هى الفئة التى ستقوم بانشاء واجهة عميل الدردشة

4_ ChatServer.java ............و هى الفئة التى ستقوم بإنشاء واجهة خادم الدردشة .


أولا : أنشاء الفئة  MessageReceiver و الفئة   MessageSender  


1_ قم فتح NetBeans وإنشاء مشروع جديد من التصنيف java me من نوع Mobile Application كما فى الصورة التالية :


2_ قم بالنقر على زر التالى ليظهر لك المربع الحوارى لكتابة أسم MyChatApp مع مراعاة إزالة علامة الخيار  Create Hello MIDlet كما فى الصورة التالية :


3_ قم بالنقر على زر الامر التالى حتى تنتهى من الاعدادات المطلوبة و بعد الانتهاء من تحديد كافة المعلومات اللازمة يمنكنك النقر على زر الامر (finsh )ليظهر لك بنية  netbeans ....


4_ بالنسبة للفئة  MessageReceiver.java و الفئة  MessageSender.java سنقوم بادراجهم فى حزمة واحدة package و ليكن بأسم  anuThreadSub ......و لفعل ذلك سنتبع الخطوات التالية :

أ_ نقوم بتحديد ايقونة التطبيق ثم كليك يمين ومن القائمة التى ستظهر أختر الامر New ثم الامر java package  كما فى الصورة التالية :

ب_سيظهر لك مربع حوارى يطالبك باضافة أسم للحزمة ...أكتب أسم الحزمة فى المكان المخصص و ليكن بأسم  anuThreadSub كما فى الصورة التالية :


ج_ ستجد أنه قد تم إضافة ايقونة بأسم الحزمة الجديدة فى التصنيف source package ....قم بتحديد تلك الايقونة ثم كليك يمين و من القائمة التى ستظهر أختر الامر New ثم الامر java Class كما فى الصورة التالية :


د_ سيظهر لك مربع حوارى يطالبك بوضع اسم لهذا الكلاس أو الفئة ......أكتب فى المكان المخصص الاسم  MessageReceiver كما فى الصورة التالية :


هـــ_بعد الانتهاء من كتابة اسم الفئة أنقر على زر الامر إنهاء .....لتظهر لك صفحة كتابة الشفرة ليس بها غير الشفرات التالية :


الرمز:
package anuThreadSub;


public class MessageReceiver {
    
    
}
 _ سنقوم بتعديل الشفرة السابقة على النحو التالى :

_ تحت سطر الامر  package anuThreadSub  نقوم بأدراج المكتبات اللازمة التالية :
الرمز:
import java.io.IOException;
import java.io.InputStream;
import javax.microedition.lcdui.Form;
_ نقوم باضافة الامر extends Thread لشفرة إنشاء الفئة لتصبح بالشكل التالى :
الرمز:
public class MessageReceiver extends Thread {
    
    
}
_ بداخل تلك الفئة سنقوم بكتابة التعليمات البرمجية التالية :
الرمز:
public class MessageReceiver extends Thread {
    private InputStream thisIs;
    private Form thisForm;
    private StringBuffer strBuf;

    public MessageReceiver(InputStream is, Form passForm) {
        this.thisIs = is;
        this.thisForm = passForm;
    }

    public synchronized void run() {
        System.out.println("Message Receiver Thread");

            while (true) {
            int msgByteInt = 0;
            strBuf = new StringBuffer();

            try {

               while (true) {
            
            msgByteInt = thisIs.read();
            strBuf.append((char) msgByteInt);
                
            if (msgByteInt == -1 || msgByteInt == '\n') {
             break;
                    }
                }
                thisForm.append(strBuf.toString());
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
    
}
 شرح بعض الشفرات السابقة :
_ طالما أستخدمنا  Thread فوجب علينا انشاء الطريقة void run و لمزيد من المعلومان عن هذا الكائن يمكنك متابعة الرابط التالى :

_ بداخل الطريقة  void run قما بعمل حلقة تكرارية لتمكننا من الرد عند تلقى رسائل من الطرف الاخر ....وقمنا بالاعلان عن المتغير strBuf كمخزن نصى لتخزين سلسلة قابلة للتغيير من الأحرف باستخدام الامر new StringBuffer 
_عندما نستخدم  الاسلوب read() لقراءة رسالة الدردشة مرة واحدة، فإنه يمكن قراءة فقط كحد أقصى 255 بايت...... ولكن حجم الرسالة الدردشة ربما تكون أكثر من ذلك الحجم. لذلك بعمل حلقة while  أخرى لقراءة الرسالة كاملة .

_ فى السطر الخامس عشر ....أستخدمنا الاسلوب read()  لقراءة البيانات بالبايت بالتتالى و تخزينة فى المتغير msgByteInt 
_ السطر السادس عشر .....قراءة بايت واحد وإلحاقها إلى StringBuffer  
_ السطر السابع عشر ....جملة شرطية يتم إرجاع قيمة البايت باعتبارة في النطاق من 0 إلى 255.و إذا لم يتوفر البايت لأنه قد تم الوصول إلى نهاية الدفق، يتم إرجاع قيمة -1

 الان أنتهيا من كتابة التعليمات البرمجية للفئة  MessageReceiver.java تعالوا الان نقوم بإنشاء الفئة  MessageSender.java  

و _ كرر الخطوات السابقة من أ حتى د .....ثم أكتب أسم الفئة  MessageSender.java .....و بعد الانتهاء من كتابة اسم الفئة أنقر على زر الامر إنهاء .....لتظهر لك صفحة كتابة الشفرة ليس بها غير الشفرات التالية :
الرمز:
package anuThreadSub;

public class MessageSender {
    
}
 
 _ سنقوم بتعديل الشفرة السابقة على النحو التالى :

_ تحت سطر الامر  package anuThreadSub  نقوم بأدراج المكتبات اللازمة التالية :
الرمز:
import java.io.IOException;
import java.io.OutputStream;
import javax.microedition.lcdui.TextField;
_ نقوم باضافة الامر extends Thread لشفرة إنشاء الفئة لتصبح بالشكل التالى :
الرمز:
public class MessageSender extends Thread{
    
}
_ بداخل تلك الفئة سنقوم بكتابة التعليمات البرمجية التالية :
الرمز:
public class MessageSender extends Thread{
   private OutputStream thisOs;
    private String thisSrvChatMsg;
    private TextField thisTxtFld;

      public MessageSender(OutputStream os, TextField passTxtFld) {
        this.thisOs = os;
        this.thisTxtFld = passTxtFld;
    }

    public synchronized void send(String srvChatMsg){
        this.thisSrvChatMsg = srvChatMsg;
        
        notify();
    }

        public synchronized void run() {
        System.out.println("Messege Sender Thread");
        while (true) {

  
            if(!(thisTxtFld.getString().equals(""))){
                thisTxtFld.setString("");
            }

            if (thisSrvChatMsg == null) {
                try {
                    
                    wait();
                } catch (InterruptedException ex) {
                    ex.printStackTrace();
                }

                try {
               thisOs.write(thisSrvChatMsg.getBytes());
                  
                    thisOs.write("\n".getBytes());

                     thisOs.flush();

                    thisSrvChatMsg = null;
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        }      
    }
}
_ واجهة الخادم و وجهة العميل التى سوف يتم برمجتمها لاحقا ستقوم أستدعاء تلك الفئة من خلال OutputStream لذلك عند بناء المشيد لتلك الفئة جعلنا لها معامل OutputStream كما هو موضح فى الكود أعلاه ..
_قمنا بانشاء الطريقة send لتقوم بارسال النصوص الى الطرف الاخر ....وبداخلها كتبنا الامر notify() وذلك لجعل مؤشر ترابط واحد فى حالة انتظار على شاشة هذا الكائن. 
_قمنا بعمل حلقة تكرارية لتشغيل OutputStream حتى نهاية دردشة كاملة والتي يمكن أن تكون أطول من 255 بايت
_ أستخدمنا جملة شرطية داخل الحلقة لمسح الدردشة السابقة من منطقة الكتابة في الحقل النصي
_أستخدمنا جملة شرطية أخرى للتحقق من قيمة thisSrvChatMsg فيتم الانتظار حتى استدعاء مؤشر ترابط آخر ويخطر الأسلوب notify أو notifyAll لهذا الكائن بذلك .
_ اما من السطر thisOs.write يقوم بكتابة النصوص المخزنة فى المتغير thisSrvChatMsg بالبايت ....ويمكنك من انشاء سطر جديد من خلال الامر  thisOs.write("\n".getBytes() ..
_ وأخير تعيين قيمة الرسالة thisSrvChatMsg حتى تتم عملية الانتظار 


و بهذا نكون قد انتهبنا من الحزمة  package anuThreadSub  و التى تحتوى على فئتين هما  MessageReceiver  و  MessageSender  

ثانيا : إنشاء الفئة ChatClient .. و الفئة  ChatServer  :  

فى البداية سنقوم بتكرار الخطوات السابقة لانشاء حزمة جديدة و ليكن بأسم anuMidSub لاحتواء تلك الفئتين و انشائهما على النحو التالى :



1_ إنشاء الفئة ChatClient ....تلك الفئة ستكون واجهة رسومية بامتداد  MIDlet و بالتالى سيتم إنشائها على النحو التالى :

أ_ تحديد ايقونة التطبيق ثم كليك يمين ومن القائمة التى ستظهر أختر الامر New ثم الامر Visual MIDlet كما فى الصورة التالية :
 

ب_سيظهر لك مربع حوارى يطالبك ببعض المعلومات كأسم الملف فضع  ChatClient كأسم و اسم الكلاس الخاص ب ChatClient 

ج_بعد الانتهاء من تحديد كافة المعلومات اللازمة للمربع الحوارى السابق قم بالنقر على زر الامر (next) لتظهر لك البنية الرسومية كما فى الشكل التالى :

د_ قم باضافة عدد 2 نافذة Form مع تغير الاسم البرمجى الى sendIpForm و chatForm 

النافذة  sendIpForm قم وضع عليها عدد 2 عنصر أمر Command مع تغير الاسم البرمجى الى exitCmd و  connectCmd .....ثم قم بوضع عدد 1 حقل نصى TextField مع تغير الاسم البرمجى الى ipTxtFld 

النافذة chatForm قم بوضع عليها عدد 1 عنصر أمر  أمر Command مع تغير الاسم البرمجى الى sendCmd .... .ثم قم بوضع عدد 1 حقل نصى TextField مع تغير الاسم البرمجى الى chatMsgTxtFld ....

ثم نقوم بادراج عدد 1 عنصر تنبية Alert مع تغير الاسم البرمجى الى infoAlert 

هــ_كتابة التعليمات البرمجية .....قم بالنقر على التويب source ليتم فتح نافذة كتابة الشفرة و بها بعض الاكواد :

_ ستجد صفحة الكود فيها بعض الشفرات لاستيراد بعض المكتبات ...سنقوم نحن باستيراد المكتبات الاخرى اللازمة على النحو التالى 
الرمز:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import anuThreadSub.MessageReceiver;
import anuThreadSub.MessageSender;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import javax.microedition.io.Connector;
import javax.microedition.io.SocketConnection;
_ ستجد ايضا فى صفحة كتابة الشفرة ....أن الفئة قد تم انشائها بالكود التالى :
الرمز:
public class ChatClient extends MIDlet implements CommandListener {
سنقوم نحن بتعديل الكود السابق و ذلك بإضافة الامر Runnable ليصبح بالشكل التالى :
الرمز:
public class ChatClient extends MIDlet implements CommandListener,Runnable {
_ ستجد خطوط حمراء تدل على وجود خطا فى الكود ...وذلك بسبب أن الواجهة  Runnable تتطلب انشاء الطريقة void run لذلك سيتم إنشائها على النحو التالى :

الرمز:
 public void run() {
        
    }
_ تحت السطر البرمجى لانشاء الفئة سنقوم بالاعلان عن المتغيرات التالية :
الرمز:
private String chatMsg;
private MessageSender msgSenClass;
private String srvIp;
private SocketConnection socCon;
private DataInputStream is;
private DataOutputStream os;
 _ بداخل الطريقة void run نقوم بكتابة التعليمات التالية :
الرمز:
 public void run() {
       srvIp = ipTxtFld.getString();

        if (srvIp != null && srvIp.length() > 0) {
            try {
         socCon = (SocketConnection) Connector.open("socket://" + srvIp + ":60000");

         is = socCon.openDataInputStream();

       os = socCon.openDataOutputStream();
                
            } catch (IOException ex) {
                ex.printStackTrace();
            }

            msgSenClass = new MessageSender(os, chatMsgTxtFld);
            msgSenClass.start();

            MessageReceiver msgRecClass = new MessageReceiver(is, chatForm);
            msgRecClass.start();

            infoAlert = new Alert("Server connected successfully.");
            display.setCurrent(infoAlert, chatForm);  
    }
        }
شرح بعض الاسطر :
_ السطر الخامس ....إنشاء اتصال مأخذ وفتح منفذ لهذا الصدد 
_السطر السادس ....جعل المتغير is يقوم باستلام  دفق البايت (الرسائل النصية )
_السطر السابع .....جعل المتغير os يقوم بارسال البايت 
الاسطر الاخير ....أنشاء كائن جديد من الفئة MessageReceiver لبدء عملية ارسال البيانات

_ سنقوم بالبحث عن الطريقة public void commandAction فى صفحة كتابة الشفرة و ستجدها بها الاكواد التالية :
الرمز:
public void commandAction(Command command, Displayable displayable) {
        
        if (displayable == chatForm) {
            if (command == sendCmd) {
              
            }
        } else if (displayable == sendIpForm) {
            if (command == connectCmd) {
              
 
              
            } else if (command == exitCmd) {
              
 
            
            }
        }
      
    }
سنقوم باضافة بعض الشفرات اليها لتصبح كما يلى :

الرمز:
 public void commandAction(Command command, Displayable displayable) {
      
        if (displayable == chatForm) {
            if (command == sendCmd) {
               chatMsg = chatMsgTxtFld.getString();
            msgSenClass.send(chatMsg);
 
              
            }
        } else if (displayable == sendIpForm) {
            if (command == connectCmd) {
             new Thread(this).start();
 
              
            } else if (command == exitCmd) {
               notifyDestroyed();
 
              
            }
        }  
    }
و هكذا نكون قد أنتهينا من تلك الفئة 


2_ إنشاء الفئة  ChatServer  ......قم بتكرار الخطوات من أ حتى ج التى استخدمناها فى انشاء الفئة   ChatClient  .....

أولا : التصميم :

_ثم قم بادراج عدد 3 نافذة Form مع تغير الاسم البرمجى الى chatServerForm و showIpForm و srvChattingFrm 

_ النافذة  chatServerForm .....قم بوضع عليها عدد 1 عنصر StringItem مع تغير الاسم البرمجى الى startServerStrItem ....ومن نافذة الخصائص لهذا العنصر أجعل الخاصية Appearance  تساوى القيمة    BUTTON ......و ايضا أجعل الخاصية lable  تساوى القيمة   Start Chat Server ....

ايضا قم بوضع عنصر شريط التقدم Gauge  مع تغير الاسم البرمجى الى  gaugeItem ....ومن نافذة الخصائص لهذا العنصر أجعل الخاصية   lable تساوى Waiting for client... ...

_ ايضا قم بإضافة عدد 2 عنصر امر Command مع تغير الاسم البرمجى الى startCmd و exitCmd

_ النافذة showIpForm ....  قم بوضع عليها عدد 1 عنصر StringItem مع تغير الاسم البرمجى الى ipStrItem ...و ايضا عدد عنصر   امر Command مع تغير الاسم البرمجى الى  exitCmd  

_ النافذة srvChattingFrm .....قم بوضع عليها عدد حقل نصى TextField مع تغير الاسم البرمجى الى chatTxtFld ....و ايضا عدد 2 عنصر امر   Command مع تغير الاسم البرمجى الى  exitCmd  و sendCmd  

 ثانيا : كتابة التعليمات البرمجية

 _ نقوم باستيراد المكتبات الاخرى اللازمة على النحو التالى :
الرمز:
import anuThreadSub.MessageReceiver;
import anuThreadSub.MessageSender;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import javax.microedition.io.Connector;
import javax.microedition.io.ServerSocketConnection;
import javax.microedition.io.SocketConnection;
_  ستجد ايضا فى صفحة كتابة الشفرة ....أن الفئة قد تم انشائها بالكود التالى :
الرمز:
public class ChatServer extends MIDlet implements CommandListener {
_ سنقوم نحن بتعديل الكود السابق و ذلك بإضافة الامر Runnable و الامر ItemCommandListener ليصبح بالشكل التالى : 
الرمز:
public class ChatServer extends MIDlet implements CommandListener , ItemCommandListener, Runnable {
_ ستجد خطوط حمراء تدل على وجود خطا فى الكود ...وذلك بسبب أن الواجهة  Runnable تتطلب انشاء الطريقة void run لذلك سيتم إنشائها على النحو التالى :

الرمز:
 public void run() {
        
    }
_ تحت السطر البرمجى لانشاء الفئة سنقوم بالاعلان عن المتغيرات التالية :

الرمز:
 private Display display;
    private ServerSocketConnection serSocCon;
    private String deviceIp;
    private SocketConnection socCon;
    private DataInputStream is;
    private DataOutputStream os;
    private Alert infoAlert;
    private String srvChatMsg;
    private MessageSender msgSenderClass;
_ بداخل الطريقة void run نكتب التعليمات التالية :

الرمز:
  public void run() {
        System.out.println("Runnig");
        try {
          
            serSocCon = (ServerSocketConnection) Connector.open("socket://:60000");
            System.out.println("Open the socket...");
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        
        try {
          
            deviceIp = serSocCon.getLocalAddress();
            System.out.println("Get device IP...");
        } catch (IOException ex) {
            ex.printStackTrace();
        }

        showIpForm.append(deviceIp);
        display.setCurrent(showIpForm);
        
        try {
            System.out.println("Waiting for client request...");
          
            socCon = (SocketConnection) serSocCon.acceptAndOpen();
            System.out.println("Accepted and open the connection...");
        } catch (IOException ex) {
            ex.printStackTrace();
        }

        try {
          
            is = socCon.openDataInputStream();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        
        try {
          
            os = socCon.openDataOutputStream();
        } catch (IOException ex) {
            ex.printStackTrace();
        }

        msgSenderClass = new MessageSender(os, chatTxtFld);
        msgSenderClass.start();

        MessageReceiver msgReceiverClass = new MessageReceiver(is, srvChattingFrm);
        msgReceiverClass.start();

        infoAlert = new Alert("Client connected successfully.");
        display.setCurrent(infoAlert, srvChattingFrm);
    }
شرح بعض الاسطر البرمجية :

السطر الرابع : تعرف الواجهة ServerSocketConnection كمقبس الخادم لاتصال.... وإنشاء مأخذ أاستماع الخادم على المنفذ  60000 
السطر التاسع : للحصول على  عنوان المضيف (رقم IP) 

_ نقوم بإنشاء طريقة أخرى لمسح محتويات الحقل النصى بعد ما يتم الارسال الى الطرف الاخر 
الرمز:
public void clear(){
        chatTxtFld.setString("");
      
    }
_  سنقوم بالبحث عن الطريقة public void commandAction لكتابة التعليمات البرمجية التالية :
الرمز:
 public void commandAction(Command command, Displayable displayable) {
      
        if (displayable == chatServerForm) {
            if (command == exitCmd) {
               notifyDestroyed();
 
              
            } else if (command == startCmd) {
              new Thread(this).start();
 
            
            }
        } else if (displayable == showIpForm) {
            if (command == exitCmd2) {
                notifyDestroyed();
 
              
            }
        } else if (displayable == srvChattingFrm) {
            if (command == exitCmd3) {
                 notifyDestroyed();
 
              
            } else if (command == sendCmd) {
              srvChatMsg = chatTxtFld.getString();
          
            msgSenderClass.send(srvChatMsg);
 
                
            }
        }
        
    }
 
المصدر الكامل للكود / 

https://github.com/AnujAroshA/Mobile-Application/tree/master/MyChatApp


وغدا ستم رفع المشروع فى المرفقات

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف م/موسي في السبت أغسطس 10, 2013 8:55 am

أشكرك أخى أحمد على هذا المجهود ......

م/موسي
الاشراف
الاشراف

تاريخ التسجيل : 18/02/2011
المساهمات : 130
النقاط : 252
التقيم : 8
الدولة : تونس
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أيمن الإبراهيم في السبت أغسطس 10, 2013 11:14 am

مشكوووووووووووووووور جدا على مجهود على الشرح الرائع

أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أيمن الإبراهيم في الإثنين أغسطس 12, 2013 6:50 pm

أستاذ احمد مشكور جدا على الدرس المفيد
بس لدي بعض استفسارات
السؤال الأول :

ثانيا : إنشاء الفئة ChatClient .. و الفئة  ChatServer  :  

فى البداية سنقوم بتكرار الخطوات السابقة لانشاء حزمة جديدة و ليكن بأسم anuMidSub لاحتواء تلك الفئتين و انشائهما على النحو التالى :
هل يجب ان تكون بحزمة منفردة كم في الشكل الاول

أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أيمن الإبراهيم في الإثنين أغسطس 12, 2013 6:51 pm

 
[ltr]السؤال الثاني :
سنقوم نحن بتعديل الكود السابق و ذلك بإضافة الامر Runnable ليصبح بالشكل التالى :
[/ltr]
[ltr]الرمز:[/ltr]
[ltr]public class ChatClient extends MIDlet implements CommandListener,Runnable {[/ltr]
[ltr]
_ ستجد خطوط حمراء تدل على وجود خطا فى الكود ...وذلك بسبب أن الواجهة  Runnable تتطلب انشاء الطريقة void run لذلك سيتم إنشائها على النحو التالى :
[/ltr]
[ltr]الرمز:[/ltr]
[ltr] public void run() {
        
    }
[/ltr]
 
هل يجب ان تكون بهذه الطريقة
public class ChatClient extends MIDlet implements CommandListener,Runnable {
    public void run() {
بداخلها التعليمات الخاصة void run         
    }
لكن عندما اضع التعليمات يتكرر الخطوط الحمراء التي تدل على أخطاء

أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أحمد مناع في الثلاثاء أغسطس 13, 2013 9:54 am

أخى الكريم أهلا وسهلا بكم ....

بالنسبة لسؤالك الاول ....ففى الشرح قمت بعمل عدد 2 حزمة و كما هو موجود فى الصورة التى ارفقتها ...ولكن ليس هذا بالضرورة عمل ذلك فيمكنك مثلا مثلا عمل حزمة واحد بها جميع الفئات الاربعة لكن فى تلك الحالة لن نقوم باستخدام باستيراد الفئة كما استخدمناها فى الكود التالى :


الرمز:
import anuThreadSub.MessageReceiver;
import anuThreadSub.MessageSender;
أما بالنسبة لسؤالك الثانى : أذا استخدمنا الامتداد Runnable فى الفئة فيجب استخدام الطريقة void run أما وجود خطوط حمراء فلا اعلم من اى الاسباب عندك ادت الى ذلك

على العموم أنتظرى بالمساء سأقوم برفع الكود اليك لانى حاليا فى العمل و الكود فى جهازى الخاص بالبيت

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف زهراء في الثلاثاء أغسطس 13, 2013 9:58 am

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

زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 262
النقاط : 372
التقيم : 24
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أيمن الإبراهيم في الثلاثاء أغسطس 13, 2013 7:47 pm

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

أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أحمد مناع في الأربعاء أغسطس 14, 2013 6:33 pm

أخى الكريم السورس موجود فى المرفقاتو ارجوا المفرقات و ارجوا المعذرة على عدم قدرتى رفعه بالامس

المرفقات
MyChatApp.zip لا تتوفر على صلاحيات كافية لتحميل هذه المرفقات.(70 Ko) عدد مرات التنزيل 25

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أيمن الإبراهيم في الأربعاء أغسطس 14, 2013 9:06 pm

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

أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أيمن الإبراهيم في الأربعاء أغسطس 14, 2013 9:13 pm



استاذ اسف كتير على استفساراتي الكثيرة وبشكرك على الرد ....استاذ احمد ممكن اعرف شو سبب لما بشغل البرنامج على جوالات يعطي لا يوجد شيء بعرضه

أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف زهراء في الأربعاء أغسطس 14, 2013 9:17 pm

جميل جدا ....لكن عندى استفسار .....:

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

السؤال الان : كيف أستطيع أن أختبر التطبيق على جهاز الكمبيوتر ؟

زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 262
النقاط : 372
التقيم : 24
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أيمن الإبراهيم في الأربعاء أغسطس 14, 2013 9:25 pm


أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أيمن الإبراهيم في الأربعاء أغسطس 14, 2013 9:25 pm

الصورة تتضمن   
this application does not use the screen and runs in the background

أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أحمد مناع في الخميس أغسطس 15, 2013 10:56 am

أخى الكريم مرحبا بك و لا تتأسف على شىء نحن جميعا سعداء بكل استفساراتك و ما يحزننا هو عدم قدرتنا على الاجابة على اى استفسار لك ....أما بالنسبة لسؤال فنعتذر عن الخطأ الوارد ....و الحل سيكون على النحو التالى :

أولا ....فى الفئة ChatClient أبحث عن الطريقة startApp ستجد بها الاكواد التالية :

الرمز:
public void startApp() {
         display = Display.getDisplay(this);
       
       midletPaused = false;
    }
و الان قم بتعديل الطريقة السابقة ....لتبصح كما يلى :

الرمز:
public void startApp() {
         display = Display.getDisplay(this);
         getSendIpForm();
         display.setCurrent(sendIpForm);
         getChatForm();
         
       midletPaused = false;
    }
ثانيا : الفئة ChatServer أبحث عن الطريقة startApp ايضا و قم بتعدليها لتبصح كما يلى :

الرمز:
public void startApp() {
       display = Display.getDisplay(this);
       getChatServerForm();
       display.setCurrent(chatServerForm);
       getShowIpForm();
       getSrvChattingFrm();
       
   }
و الان يمكنك تشغيل التطبيق ....و نعتذر عن الخطأ مرة أخرى ...ولا تتردد فى اى استفسار أخر

تحياتى لك

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أحمد مناع في الخميس أغسطس 15, 2013 11:18 am

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

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

السؤال الان : كيف أستطيع أن أختبر التطبيق على جهاز الكمبيوتر ؟
 الكريمة زهراء بداية أشكرك على مجهودك فى المنتدى ....فشكرا لكى اتيها الكريمة

أما بالنسبة لسؤال ....فمن الذى قال لكى أننا لا نستطيع تشغيل غير محاكى واحد ....الكريمة زهراء نحن نستطيع فعل ذلك بكل بسهولة .....فقط قومى بتشغيل التطبيق ...سيظهر لك محاكى لتشغيل الطبيق ....فى ذلك الوقت و أثناء التطبيق فى قيد التشغيل قومى تختار محاكى Device مختلف عما قد حددته فى بداية إنشاء المشروع عن طريق تحديد الامر Customize من قائمة المهام فى NetBeans كما فى الصورة التالية :





ثم قومى بالنقر على زر تشغيل التطبيق سيظهر لك المحاكى الاخر بالاضافة الى المحاكى الاول الذى مازال فى قيد التشغيل ....حينها تستطيعى تشغيل السرفر أو الخادم من اي منهما كما فى الشكل التالى :




ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أيمن الإبراهيم في الخميس أغسطس 15, 2013 12:35 pm

مشكور

أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف ذوكا في الأحد أغسطس 18, 2013 3:32 pm

جزاك الله خيرا على كل ما تقدمه لنا من علم

ذوكا
.....
.....

تاريخ التسجيل : 26/05/2013
المساهمات : 92
النقاط : 155
التقيم : 11
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

سؤال

مُساهمة من طرف أيمن الإبراهيم في الأحد أغسطس 18, 2013 10:47 pm

استاذ احمد انا للاسف لم افهم طريقة مل برنامج شات
اولا نقوم بتشغيل شات سيرفر ويقوم باعطأنا الاي بي ثم نفتح برنامج Chat Client ونقوم بكتابة رقم الاي بي ثما اتصال

لم افهم الطريقة جيدا
اذا اردت تحدث مع شخص ثاني على جهاز اخر ماذا يجب العمل 

بعد تحميل التطبيق لديه ماذانفعل 

وشكرا

أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف زهراء في الإثنين أغسطس 19, 2013 6:38 am

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

زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 262
النقاط : 372
التقيم : 24
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أحمد مناع في الإثنين أغسطس 19, 2013 10:06 am

أيمن الإبراهيم كتب:استاذ احمد انا للاسف لم افهم طريقة مل برنامج شات
اولا نقوم بتشغيل شات سيرفر ويقوم باعطأنا الاي بي ثم نفتح برنامج Chat Client ونقوم بكتابة رقم الاي بي ثما اتصال

لم افهم الطريقة جيدا
اذا اردت تحدث مع شخص ثاني على جهاز اخر ماذا يجب العمل 

بعد تحميل التطبيق لديه ماذانفعل 

وشكرا

اخى الكريم ايمن ....هذا مجرد تطبيق بسيط لتوضيح فكرة عمل الدردشة للجوالات و التى تقوم على الاتصال بين السرفر و العميل عن طريق رقم ip .....اما سؤالك عن كيفية اعطاء رقم الاى بى للطرف الاخر وهو بعيد عنك حتى يتم الاتصال ممكن ذلك عن طريقة ارساله عن طريقة رسالة قصيرة له ....لكن هذا ليس من الاحترافية وكل ما علينا الان هو كيفية تطوير هذا التطبيق استخدام ما يسمى Server API بدلا من رقم اى بى و التى تستخدمها معظم تطبيقات الدردشة العملاقة مثل NIMBUZZ ....وانتظر منى درس فى ذلك غدا او بعد غد على الاكثر

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أيمن الإبراهيم في الإثنين أغسطس 19, 2013 11:16 am

مشكور استاذ احمد
انا اقصد هل يجب تشغيل الجهاز الاخر على نفس الاي بي الاول
او يجب ايضا على موبايل الثاني تشغيل اولا تطبيق السرفر شات وكتابة الاي بي خاص بموبايل التاني
وشكرا   على جهودك
انا احاول تطوير برنامج مثل nimbuzz

أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أحمد مناع في الثلاثاء أغسطس 20, 2013 9:52 am

أيمن الإبراهيم كتب:مشكور استاذ احمد
انا اقصد هل يجب تشغيل الجهاز الاخر على نفس الاي بي الاول
او يجب ايضا على موبايل الثاني تشغيل اولا تطبيق السرفر شات وكتابة الاي بي خاص بموبايل التاني
وشكرا   على جهودك
انا احاول تطوير برنامج مثل nimbuzz
أخى الكريم أيمن ....أهلا وسهلا بك و شكراً جزيلا على مجهودك الكبير فى المنتدى ....بالنسبة لفكرة عمل التطبيق فهى على النحو التالى :

_ اولا يتم تشغيل الخادم ChatServer ...ستظهر لك نافذة بها شريط تقديم و تخبرك بأننا فى حاله أنتظار العميل ...أنقر فوق الامر OK ليظهر لك عنوان الاى بى لديك كما فى الصورة التالية :


_ الان قم بتشغيل العميل ChatClient على محاكى أخر  ...لتظهر لك نافذة تطالبك بادخال رقم الاى بى المراد الاتصال به ....قم بادخال رقم الاى بى الذى حصلنا عليه فى الخطوة السابقة كما فى الصورة التالية :


_ من خلال ChatClient ستجد فى الجهة اليمنى قائمة بها الامر "أتصال"....قم بالنقر عليه ليتم الاتصال بين ChatClient و ChatServer وظهور رسالة فى كلا الطرفين تفيد عملية الاتصال كما فى الاشكال التالية :



_ وهكذا تم الاتصال بين الطرفين و سيظهر لكلا الطرفين شاشة بها مربع نص لارسال الرسال بينهما كما فى الشكل التالى :


ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف لمار عادل في الثلاثاء أغسطس 20, 2013 10:02 am


بسم الله ما شاء الله عليكم يا جماعة ....كان نفسى اكون مشتركة معاكم فى الحوارى بس انا مبتدئة جدا فى الجافا ....اعمل انا اية بقى Very Happy 

لمار عادل
..
..

تاريخ التسجيل : 29/05/2013
المساهمات : 28
النقاط : 46
التقيم : 2
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية إنشاء تطبيق دردشة بيسط للجوالات بأستخدام J2ME مع NetBeans

مُساهمة من طرف أيمن الإبراهيم في الثلاثاء أغسطس 20, 2013 2:01 pm

استاذ احمد سؤال
لما عم اكتب رقم الاي بي في chat client واظغط اتصال
تظهر رسالة : يوجد استثناء لم يتم التعامل معه    اغلاق التطبيق

أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

صفحة 1 من اصل 2 1, 2  الصفحة التالية

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى