الاتصال بخادم FTP في Java
تنفذ هذه المقالة أمثلة على التعليمات البرمجية لجافا توضح كيفية الاتصال وتعريف نفسك بخادم FTP باستخدام Apache Commons Net. تأكد من وجود ملف commons-net.jar في classpath.
نمط net.ftp.FTPClient الأساس اللازم للتفاعل مع الخادم عبر بروتوكول FTP. للاتصال بالخادم ، استخدم هذه الطريقة:
void connect (خادم سلسلة ، منفذ int) < / span >: يمكن تعيين الخادم باسم المضيف أو عنوان IP ، والمنفذ هو رقم يستخدم للاستماع إلى الاتصالات الواردة لتطبيق معين. يستخدم FTP المنفذ 21.
بعد الاتصال ، استخدم هذه الطريقة لتعريف نفسك:
تسجيل الدخول المنطقي (اسم مستخدم السلسلة ، كلمة مرور السلسلة) < / span>: ترجع هذه الطريقة true إذا كان التعريف ناجحا ، وإلا false.
يجب الحصول على استجابة من خادم FTP بعد استدعاء الاتصال () < / span >:
< pre class = "prettyprint lang-java" >int responseFTP = clientFTP.getReplyCode ();
if (!reponseFTP.isPositiveCompletion(replyCode)) {
// فشلت العملية. يرفض الخادم
/ الاتصال أو يرفض عملية الإرجاع
؛
}
بعد كل استدعاء للطريقة، يقوم الخادم بإرجاع الرسائل. تعرض الطريقة التالية رسائل من الخادم:
< pre class = "prettyprint lang-java" > استجابة خادم الفراغ الثابت الخاص (FTPClient ftpClient) {
String[] الاستجابات = ftpClient.getReplyStrings ();
if (إجابات!= فارغة & & الإجابات.الطول > 0) {
ل (استجابة السلسلة: الردود) {
System.out.println ("الخادم: " + الاستجابة) ؛
}
}
}
< / pre> إليك الكود الكامل الذي يشمل تسجيل الدخول وتحديد الهوية والتحقق:
نمط net.ftp.FTPClient الأساس اللازم للتفاعل مع الخادم عبر بروتوكول FTP. للاتصال بالخادم ، استخدم هذه الطريقة:
void connect (خادم سلسلة ، منفذ int) < / span >: يمكن تعيين الخادم باسم المضيف أو عنوان IP ، والمنفذ هو رقم يستخدم للاستماع إلى الاتصالات الواردة لتطبيق معين. يستخدم FTP المنفذ 21.
بعد الاتصال ، استخدم هذه الطريقة لتعريف نفسك:
تسجيل الدخول المنطقي (اسم مستخدم السلسلة ، كلمة مرور السلسلة) < / span>: ترجع هذه الطريقة true إذا كان التعريف ناجحا ، وإلا false.
يجب الحصول على استجابة من خادم FTP بعد استدعاء الاتصال () < / span >:
< pre class = "prettyprint lang-java" >int responseFTP = clientFTP.getReplyCode ();
if (!reponseFTP.isPositiveCompletion(replyCode)) {
// فشلت العملية. يرفض الخادم
/ الاتصال أو يرفض عملية الإرجاع
؛
}
بعد كل استدعاء للطريقة، يقوم الخادم بإرجاع الرسائل. تعرض الطريقة التالية رسائل من الخادم:
< pre class = "prettyprint lang-java" > استجابة خادم الفراغ الثابت الخاص (FTPClient ftpClient) {
String[] الاستجابات = ftpClient.getReplyStrings ();
if (إجابات!= فارغة & & الإجابات.الطول > 0) {
ل (استجابة السلسلة: الردود) {
System.out.println ("الخادم: " + الاستجابة) ؛
}
}
}
< / pre> إليك الكود الكامل الذي يشمل تسجيل الدخول وتحديد الهوية والتحقق:
import java.io.IOException ؛
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
من الفئة العامة FTPConnectionLogin {
استجابة خادم الفراغ الثابت الخاص (FTPClient ftpClient) {
String[] الاستجابات = ftpClient.getReplyStrings();
if (إجابات!= فارغة & & الإجابات.الطول > 0) {
ل (استجابة السلسلة: الردود) {
System.out.println ("الخادم: " + الاستجابة) ؛
}
}
}
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
خادم السلسلة = "عنوان الخادم" ؛
int port = 21 ؛
اسم مستخدم السلسلة = "اسم المستخدم" ؛
كلمة مرور السلسلة = "كلمة المرور" ؛
FTPClient ftpClient = FTPClient الجديد ();
محاولة {
ftpClient.connect (الخادم ، المنفذ) ؛
serverresponse(ftpClient);
int response = ftpClient.getReplyCode ();
if (! FTPReply.isPositiveCompletion(response)) {
System.out.println("فشلت العملية. إجابة الخادم: " + إجابة) ؛ < br / > العودة ؛
}
الحالة المنطقية = ftpClient.login (اسم المستخدم ، كلمة المرور) ؛
serverresponse(ftpClient);
if (!state) {
System.out.println("تعذر الوصول إلى الخادم"); < br / > العودة ؛
} آخر {
System.out.println("تم تحديد الهوية بنجاح");
}
} catch (IOException ex) {
System.out.println("تم اكتشاف خطأ أثناء الاتصال");
على سبيل المثال printStackTrace ();
}
}
}
< / pre>التجميع والتنفيذ:
< pre class = "prettyprint lang-java" > الخادم: 220---------- مرحبا بكم في Pure-FTPd [privsep] ----------
الخادم: 220-أنت المستخدم رقم 31 من 500 مسموح به.
الخادم: 220-التوقيت المحلي هو الآن 06:02. منفذ الخادم: 21.
الخادم: 220-هذا نظام خاص - لا يوجد تسجيل دخول مجهول
الخادم: 220 سيتم قطع اتصالك بعد 3 دقائق من عدم النشاط.
الخادم: 230-OK. الدليل المقيد الحالي هو /
SERVER: 230-100 ملف مستخدم (1٪) - مصرح به: 10000 ملف
SERVER: 230 5217 كيلوبايت مستخدم (0٪) - مصرح به: 1536000 Kb
تحديد ناجح