سؤال

حسنا، لدي الكثير من الأسئلة المتعلقة بتطبيق تقاسم الملفات الذي لا أعرفه أين أبدأ. المعرفة Java الخاصة بي محدودة للغاية وسوف أكون راضيا عن أي مساعدة تقدمها لي.

القول، هنا تأتي الأسئلة.

أولا، أنا أعمل على طريقة تسجيل دخول المستخدم تحتاج إلى أن تبدو مثل هذا:

import java.io.File;
import java.util.ArrayList;


public class User {

    String username;
    String IPAdresa;

    public User(String username, String IPAdresa) {

         this.username = username.toLowerCase();
         this.IPAdresa = IPAdresa;

    }

    public void fileList() {

        ArrayList<String> list = new ArrayList<String>();

        File folder = new File("C:\\userfolder");

           File[] files = folder.listFiles();

           for (int i = 0; i < files.length; i++) {

                list.add(i, files[i].toString());

           }

    }
}

كما ترون أن لدي فئة مستخدم تحتوي على معلمات تتعلق بالمستخدم، مثل اسم المستخدم و ipaddress، وأيضا طريقة Filelist التي تسرد الملفات من مجلد معين وإنشاء قائمة الصفيف التي تحتوي على أسماء الملفات كسلاسل.

الشيء التالي الذي يجب علي فعله هو جعل فئة أو طريقة توفر وظيفة البحث للعملاء / المستخدمين. على سبيل المثال، عندما يسجل المستخدمون إلى التطبيق، سيريد البحث عن ملف معين وسيوفر أيضا قائمة الملفات من مجلده المشترك إلى مستخدمين آخرين. الطريقة التي فهمت فيها Menthor، تحتاج فئة الطلب إلى احتواء لكل حلقات قادرة على البحث داخل قوائم الملفات المعنية للمستخدمين. لست متأكدا من كيفية سحب ذلك، ولدي الكثير من المشكلات المتعلقة بالعمل مع قوائم الصفيف.

هذا كيف يفترض أن تبدو وكأنها تقريبا: (أنا أستخدم نوعا من الكود الزائفي لهذا واحد حتى الآن)

public class RequestForFile {

    ArrayList list = new ArrayList();
    User user = new User("Slavisha","123.23.34.45");

    public RequestForFile() {
        list.add(user);
            foreach (User user in userlist) {
              foreach (String str in User.fileList()) {
                  if (str == request)
                  ...
              }
            }

    }

}

سؤال التالي: كيف يقوم المستخدمون بتسجيل الدخول إلى تطبيق Java؟ لقد كنت أفكر في الأمر طوال اليوم وحاول الوصول إليها ولكني فشلت فقط. ليس لدي واجهة المستخدم الرسومية / تأرجح حتى الآن، نأمل أن أفعل ذلك في النهاية.

لدي 3 فصول أخرى تمثل العميل والخادم والمعالجة اليدوية.

كما قلت أي مساهمة موضع ترحيب. سأعود مع المزيد من الأسئلة بالتأكيد. شكرا

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

المحلول

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

دعنا نفترض في الوقت الراهن أننا نعرف أنه سلافيشا على هذا ipaddress الذي يسأل. هناك عدد قليل من المشاكل هنا:

1). ما الذي يطلبه؟ لا يأخذ القياس () أي معلمة ليقول الملف الذي يتم طلبه. إذن ما هي مهتمات طلب القياس ()؟ هل قدمت لتمثيل طلب واحد؟ هل هي مسؤولة عن العثور على الملف بالفعل؟ عودة ذلك؟

2). User.filelist () الطريقة لا تفعل في الواقع أي شيء مفيد. لا يعيد أي شيء، لذلك عند الانتهاء من كل ما حظي به فقده.

3). على أي حال، يبدو أن كل مستخدم يبحث في نفس المجلد: "C: Userfolder" هل تنوي أن يكون لديك دليل منفصل لكل مستخدم.

4). ربما يكون البحث من خلال القوائم غير فعالة، تحتاج إلى قراءة حول مجموعات وخرائط.

أعتقد أنك بحاجة إلى إعادة تصميم مفصلة للغاية. يحتاج فئة المستخدم الخاصة بك إلى الإجابة على أسئلة مثل "هل لدى هذا المستخدم هذا الملف". يحتاج فئة الطلب إلى تحديد مستخدم معين واسأله عن الملف. لست من الواضح كيف تنوي نقل الملف من العميل إلى الخادم.

يجب أن أقول أن القيام برمجة العميل / الخادم باعتباره ممارسة التعليم المبكر طموح جدا.

نصائح أخرى

لست متأكدا تماما ما تقصده "تسجيل الدخول". إذا (كما أعتقد) تريد التعرف المستخدم في تطبيق Java الخاص بك، استخدم:

System.getProperty("user.name");

الذي يمنحك اسم المستخدم للمستخدم قيد التشغيل حاليا التطبيق الخاص بك.

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

يمكنك القيام بذلك بطريقة أخرى - يحصل الخادم على طلب من العميل، هل يبحث البحث عن العميل فقط. يعتمد على المكان الذي تريد وضعه معظم عبء العمل الخاص بك. في كلتا الحالتين، أنت تتحدث عن إرسال الأوتار عبر اتصال مأخذ. على الأقل، حتى تذهب من النظر في قوائم أسماء الملفات لإرسال الملفات فعليا من عميل إلى آخر.

لذلك ربما تريد أن تبدأ النظر في برنامج تعليمي على مآخذ للنظر في كيفية إرسال برامج منفصلة على أجهزة الكمبيوتر المختلفة إرسال معلومات إلى بعضها البعض.

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