Anda di halaman 1dari 6

7.

4 Layanan Protokol Transfer File


File transfer akun untuk jumlah aliran tinggi dan data dalam jumlah besar ditransfer melalui jaringan saat ini. Mereka
melibatkan klien mentransfer konten file dengan cara yang andal dan efisien ke dan dari server jauh.

Transfer file ini menggunakan File Transfer Protocol (FTP) yang dulu dikembangkan pada tahun 1985 dan masih digunakan
sampai sekarang. Protokol telah distandarisasi pertama kali di RFC 959 [8], dan kemudian berbagai ekstensi telah diusulkan
untuk meningkatkan fleksibilitas dan keamanan (RFC 1579, RFC 2228) [ 9 , 10]

FTP berfungsi di atas TCP dan secara umum menggunakan port 21; Namun, dalam beberapa situasi administrator server
dapat memilih untuk menggunakan port yang berbeda. FTP melibatkan klien menghubungkan ke server dan mengirim
perintah selama sesi komunikasi. Server merespons dengan tindakan dan pesan status perintah. Secara umum, masing
masing sesi tersebut melibatkan setidaknya satu transfer file.

Prinsip dasar transfer file menggunakan FTP diuraikan pada Gambar 7.5.

Secara teoritis, FTP melibatkan dua koneksi: untuk kontrol dan data. FTP commands dan balasan dipertukarkan melalui
koneksi kontrol, sementara data dipertukarkan melalui koneksi data. Ada persyaratan untuk koneksi kontrol menjadi
berfungsi ketika data ditransfer melalui koneksi khusus. Dalam praktiknya, satu koneksi digunakan untuk pertukaran data
dan kontrol informasi.

Perintah FTP termasuk dalam salah satu dari tiga kategori berikut.

 Perintah kontrol akses meliputi:


- USER — menunjukkan pengguna;
- LULUS — menunjukkan kata sandi;
- CWD — mengubah direktori;
- CDUP — mengubah direktori menjadi induk;
- QUIT — logout.
 Perintah parameter transfer meliputi:
- PORT — menerbitkan port data lokal;
- PASV — membuat server pasif (mendengarkan);
- TYPE — menunjukkan representasi data (A-ASCII, E-EBCDIC, I-Image, LLokal);
- MODE — menunjukkan mode transfer (S-Stream, B-Block, C-Compressed);
- STRU — mengatur struktur file (F-FILE, R-RECORD, P-PAGE).
 Perintah layanan meliputi:
- RETR — mengambil file;
- STOR — mengirim dan menyimpan file dari jarak jauh;
- APPE — mengirim file dan menambahkan;
- DELE — menghapus file;
- MKD — membuat direktori baru;
- RMD — menghapus direktori;
- PWD — mencetak direktori kerja;
- LIST — daftar file.

Setiap perintah harus menghasilkan beberapa tindakan dan setidaknya satu balasan dari server. Ini memungkinkan
sinkronisasi permintaan yang dikirim oleh klien dan tindakan yang dilakukan oleh server dan juga memungkinkan klien
untuk mengetahui status server. Secara umum, balasan adalah satu baris; namun, banyak baris juga diterima. Jawabannya
harus berisi kode status tiga digit yang memungkinkan mesin menilai status server dan pesan teks yang menggambarkan
status server dalam bahasa manusia.

Ada beberapa masalah yang terlibat saat menggunakan FTP untuk transfer file. Keamanan adalah masalah penting bagi
banyak perusahaan yang telah menginstal firewall. Firewall mencegah pengguna yang tidak sah dari mendapatkan akses ke
jaringan. Namun, firewall juga mungkin secara tidak sengaja mencegah pengguna yang sah mengakses beberapa sumber,
termasuk file. Ketika FTP terlibat, administrator jaringan harus merancang aturan untuk kelas Koneksi FTP yang mungkin
merupakan proses yang mahal dan rawan kesalahan.

Masalah lainnya adalah standardisasi. Ada banyak aplikasi klien FTP dengan interpretasi yang berbeda dari protokol FTP.
Akibatnya, administrasi server FTP tor harus tahu cara mendukung semua jenis aplikasi klien yang berbeda ini. Alternatif
untuk FTP klasik adalah transfer file berbasis web. Transfer file berbasis web klien fer berjalan di dalam browser Web.
Tidak perlu menginstal perangkat lunak, lisensi untuk membeli atau memelihara perangkat lunak. Selain itu, tidak perlu
diatur aturan firewall untuk setiap kelas pengguna.

7.4.1 Contoh Klien FTP Java Sederhana


Klien FTP Java dapat diimplementasikan dalam tiga cara.

Pendekatan pertama membutuhkan implementasi kelas FTPClient sendiri. Ini solusi dapat menggunakan soket standar dan
perintah FTP untuk berinteraksi dan bertukar data file dengan server file. Pendekatan kedua adalah menemukan
implementasi yang ada kelas FTPClient dan memanfaatkannya untuk melakukan transfer file. Itu Kemungkinan ketiga
adalah menggunakan klien FTP berbasis Web.

Contoh transfer file klien FTP Java sederhana yang disajikan berikutnya menggunakan yang kedua pendekatan dan
memanfaatkan implementasi FTPClient tersedia sebagai bagian dari Apache Commons Net API [ 25] Klien FTP berbasis
Apache Commons Net API implementasi aplikasi transfer file melibatkan langkah-langkah berikut.

 Langkah 1 — Unduh Apache Commons Net API versi 3.2.

http://commons.apache.org/net/download_net.cgi

 Langkah 2 — Perbarui CLASSPATH Anda untuk memasukkan:


commons-net-3.2.jar
 Langkah 3 — Impor paket yang diperlukan:
import java.io. *;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
 Langkah 4 — Mempersiapkan parameter untuk otentikasi server:
/ * set parameter server * /
String srv = String baru ("136.206.35.46");
port int = 21;
Pengguna string = String baru ("john");
String pass = String baru ("Secret @ 19_02_13");
 Langkah 5 — Buat objek FTPClient:
FtpClient client = new FtpClient (host);
 Langkah 6 — Hubungkan, login ke server FTP, dan atur mode transfer:
/ * terhubung ke server FTP * /
ftpClient.connect (srv, port);
/ * diotentikasi di server * /
ftpClient.login (pengguna, pass);
/ * mengatur koneksi ke mode client-server * /
ftpClient.enterLocalPassiveMode ();
/ * set tipe file yang ditransfer * /
ftpClient.setFileType (FTP.BINARY_FILE_TYPE);
 Langkah 7 — Mengatur file lokal dan jarak jauh dan melakukan transfer:
/ * file jarak jauh * /
String rf = "/remotefolder/remotefile.txt";
/ * file lokal * /
File lf = File baru ("C: /localfolder/localfile.txt");
/ * memungkinkan penulisan data * /
OutputStream os =
BufferedOutputStream baru (FileOutputStream baru (lf));
/ * mendapat konten file jarak jauh * /
if (ftpClient.retrieveFile (rf, os))
System.out.println ("Keberhasilan transfer file.");
 Langkah 8 — Tutup aliran output, lakukan keluar dan lepaskan server:
/ * menutup aliran output * /
os.close ();
/ * logout dan terputus * /
if (ftpClient.isConnected ())
{
ftpClient.logout ();
ftpClient.disconnect ();
}
 Langkah 9 — Menangani semua pengecualian:
mencoba
{
[...]
}
menangkap()
{
[...]
}

Klien pengunduhan FTP berbasis Apache Commons Net berbasis API yang lengkap banyak aplikasi termasuk
berikutnya. Solusi pengunduhan FTP alternatif yang menggunakan InputStream Apache Commons Net API FTPClient
untuk mengambilMetode FileStream (String remote) disajikan dalam [26 ].

import java.io. *;

import org.apache.commons.net.ftp.FTP;

import org.apache.commons.net.ftp.FTPClient;

ApacheJavaFTP kelas publik

public static static utama (String [] args)

/ * set parameter server * /

String srv = String baru ("136.206.35.46");

port int = 21;

Pengguna string = String baru ("john");

String pass = String baru ("Secret @ 19_02_13");

/ * membuat objek FTPClient * /

FTPClient ftpClient = FTPClient baru ();

Mencoba

/ * terhubung ke server FTP * /

ftpClient.connect (srv, port);

/ * diotentikasi di server * /

ftpClient.login (pengguna, pass);

/ * mengatur koneksi ke mode client-server * /

ftpClient.enterLocalPassiveMode ();

/ * set tipe file yang ditransfer * /

ftpClient.setFileType (FTP.BINARY_FILE_TYPE);

/ * file jarak jauh * /

String rf = "/remotefolder/remotefile.txt";

/ * file lokal * /

File lf =

File baru ("C: /localfolder/localfile.txt");

/ * memungkinkan penulisan data * /

OutputStream os =
BufferedOutputStream baru (baru

FileOutputStream (lf));

/ * mendapat konten file jarak jauh * /

if (ftpClient.retrieveFile (rf, os))

System.out.println ("Keberhasilan transfer file.");

/ * menutup aliran output * /

os.close ();

catch (IOException ex)

System.out.println ("Kesalahan:" + ex.getMessage ());

ex.printStackTrace ();

Akhirnya

mencoba

if (ftpClient.isConnected ())

ftpClient.logout ();

ftpClient.disconnect ();

catch (IOException ex)

ex.printStackTrace ();

import java.io.*;

import java.net.*;

/*HTTP client implementation*/

public class JavaHTTPClient

{
/*main method invoked when the application starts*/

public static void main (String[] args)

/*Process input parameters*/

String path =

new String("http://www.eeng.dcu.ie/index.html");

DataInputStream is = null;

try

/*Create URL object*/

URL url = new URL(path);

/*Open an input stream from the url*/

is = new DataInputStream(new
BufferedInputStream(url.openStream()));

/*Reads line by line and prints them on the screen*/

String s;

while ((s = is.readLine()) != null)

System.out.println(s);

catch (Exception e)

System.out.println("An exception occurred");

e.printStackTrace();

System.exit(1);

finally

/*Close the input stream*/

try

is.close();

catch (IOException ioe)


{

System.out.println("IOException occured");

ioe.printStackTrace();

System.exit(1);

Anda mungkin juga menyukai