سؤال

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

هل من المنطقي أن يكون مقبس الاستماع كمقبس خادم وتشغيله في سلسلة منفصلة عن المقبس الذي أستخدمه لإرسال البيانات إلى الخادم؟

في سؤال ذي صلة فضفاضة.هل يعرف أحد ما إذا كانت البرمجة لجافا فقط، وفي netbeans ثم تصديرها للاستخدام على جهاز بلاك بيري (باستخدام مكون إضافي) ستظل المقابس تعمل؟

هل كانت مفيدة؟

المحلول

إذا كنت تستطيع تحمل تكاليف الترابط، فجرّب هذا (ضع في اعتبارك أنني أهملت بعض التفاصيل مثل معالجة الاستثناءات والتعامل بشكل جيد مع سلاسل الرسائل).قد ترغب في النظر في SocketChannels و/أو مآخذ/محددات NIO غير المتزامنة.هذا يجب عليك ان تبداء.

boolean finished = false;
int port = 10000;
ServerSocket server = new ServerSocket(port);

while (!finished) {
    // This will block until a connection is made
    Socket s = server.accept();
    // Spawn off some thread (or use a thread pool) to handle this socket
    // Server will continue to listen
}

نصائح أخرى

أما بالنسبة للاتصال بجهاز Blackberry، فهذا يمثل مشكلة نظرًا لأنه في معظم الحالات لن يكون لجهاز Blackberry عنوان IP عام وسيكون بدلاً من ذلك خلف بوابة WAP أو خادم نقطة وصول مزود الخدمة اللاسلكية.توفر RIM خادم بيانات الهاتف المحمول (MDS) للتغلب على هذه المشكلة وتوفير بيانات "الدفع" التي تستخدم دلالات ServerSocket على جهاز Blackberry.يتوفر برنامج MDS مع Blackberry Enterprise Server (BES) وUnite Server.

بمجرد إعداد البيانات، يمكن إرسالها إلى وحدة معينة عبر MDS باستخدام بروتوكول HTTP.يوجد وصف ممتاز لبروتوكول الدفع هنا مع كود مصدر LAMP.المعلمة PORT = 7874 بوصة Pushout.pl يتصل بمقبس خادم Blackberry Browser Push.عن طريق تغيير هذه المعلمة، يمكن إرسال الحمولة إلى منفذ عشوائي حيث يقبل ServerSocket الخاص بك الاتصالات.

إذا كان يجب تشغيل رمز مأخذ التوصيل الخاص بك على جهاز BlackBerry، فلن تتمكن من استخدام مآخذ توصيل Java القياسية.يتعين عليك استخدام J2ME Connector.open API لإنشاء كلا النوعين من المقابس (تلك التي تبدأ الاتصالات من BlackBerry، وتلك التي تستمع للاتصالات/الدفعات على BlackBerry).قم بإلقاء نظرة على الأمثلة التي تأتي مع RIM's JDE.

سأحتاج إلى العودة إلى الأساسيات لهذا أيضًا.أود أن أوصي بـ O'Reilly's الممتاز جافا باختصار يتضمن أمثلة التعليمات البرمجية لمثل هذه الحالة (متوفر متصل أيضًا).راجع الفصل السابع للحصول على نظرة عامة جيدة على القرارات التي ترغب في اتخاذها في وقت مبكر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top