Networking: InetAddress
Revisi : 01 Juni 2013
A. Kompetensi
Setelah mengikuti mata kuliah ini, mahasiswa memiliki kemampuan membuat program untuk mengidentifikasi IP Address dalam komunikasi client-server berbasis socket menggunakan kelas InetAddress.
B. Dasar Teori
Proses komunikasi client-server kadang-kadang membutuhkan program yang dapat mengidentifikasi IP Address, sehingga server dapat mengetahui IP Address setiap client yang melakukan permintaan koneksi. Misalkan skrip program untuk membangun server dan client seperti ditunjukkan pada LP-01 dan LP-02 berikut ini. LP-01. ServerTCP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 /* (1) Networking butuh import: */ import java.net.*; import java.io.*; public class ServerTCP { public static void main(String[] args){ //(2) mendefinisikan port number int portNumber = 1000; //(3) ServerSocket harus dideklarasikan try { //(4) membuat socket pada portNumber ServerSocket socket = new ServerSocket(portNumber); //(5) menampilkan text message System.out.println("Server is running............."); while (true){ //(6) menerima permintaan koneksi dari klient Socket clientSocket = socket.accept(); //(7) menampilkan message isu permintaan koneksi klient System.out.println("Ada request dari client..........");
Dibuat oleh :
Eko Marpanaji
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :
Networking: InetAddress
Revisi : 01 Juni 2013
LP-02. ClientTCP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 /* (1) Networking butuh import: */ import java.net.*; import java.io.*; public class ClientTCP { public static void main(String[] args){ //(2) mendefinisikan hostName String hostName = "localhost"; //(3) mendefinisikan portNumber int portNumber = 1000; //(4) Socket harus dideklarasikan try { //membuat permintaan koneksi Socket connection = new Socket(hostName, portNumber); } catch(IOException e){ System.out.println("Connection Status: " + e.getMessage()); }
} }
Bahasa pemrograman Java menyediakan sebuah kelas yang dapat digunakan untuk mengetahui IP Address yaitu kelas InetAddress. Kelas InetAddress membuat model tentang IP Address. Perintah berikut ini dapat digunakan untuk menghasilkan sebuah instan InetAddress dari client yang melakukan permintaan koneksi dari socket server (perhatikan skrip LP-01 baris 16) dengan nama inetAddressClient. IP Address dan Nama Host dapat diperoleh dengan menjalankan method getInetAddress().
InetAddress inetAddressClient = socket.getInetAddress();
Selanjutnya, IP Address dan Host Name dari client yang diterima permintaan koneksinya masing-masing dapat ditampilkan dengan menjalankan method getHostAddress() dan getHostName().
System.out.println("Host Name Client adalah: " + inetAddressClient.getHostName()); System.out.println("IP Address Client adalah " + inetAddressClient.getHostAddress());
Dibuat oleh :
Eko Marpanaji
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :
Networking: InetAddress
Revisi : 01 Juni 2013
LP-03. ServerTCPGetIP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 /* (1) Networking butuh import: */ import java.net.*; import java.io.*; public class ServerTCPGetIP { public static void main(String[] args){ //(2) medefinisikan port number int portNumber = 1000; //(3) ServerSocket harus dideklarasikan try { //(3) membuat socket pada portNumber ServerSocket socket = new ServerSocket(portNumber); //(4) menampilkan text message System.out.println("Server is running............."); while (true){ //(5) menerima permintaan koneksi client Socket acceptedClient = socket.accept(); //(6) menampilkan message isu permintaan koneksi client System.out.println("Ada request dari client.........."); //(7) Mengetahui Host Name dan IP Address Client InetAddress inetAddressClient = acceptedClient.getInetAddress(); //InetAddress inetAddressClient = // InetAddress.getByName("localhost"); System.out.println("Nama Host: " + inetAddressClient.getHostName()); System.out.println("IP Address: " + inetAddressClient.getHostAddress()); } } catch(IOException e){ System.out.println("Listen: " + e.getMessage()); } } }
Skrip program LP-03 merupakan program untuk membangun server yang dapat mengidentidikasi host name dan IP Address client yang melakukan permintaan koneksi. Baris 30 membuat InetAddress dengan nama inetAddressClient, dengan cara menjalankan method getInetAddress() dari obyek acceptedClient. Baris 34 37 adalah perintah untuk mendapatkan Host Name dengan menjalankan method getHostname() dan perintah untuk mendapatkan IP Address dengan menjalankan getHostAddress().
Dibuat oleh :
Eko Marpanaji
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :
Networking: InetAddress
Revisi : 01 Juni 2013
Kita juga dapat membuat instan dari InetAddress dari sebuah host name atau IP Address dengan menggunakan method static getByName. Perintah berikut ini membuat sebuah instan InetAddress untuk host liang.armstrong.edu:
InetAddress address = InetAddress.getByName("liang.armstrong.edu");
C. Alat/ Bahan
1. 2. 3. 4. Lab. Sheet Jaringan Terdistribusi #02 PC / Laptop with OS installed JDK 1.5 or latest Crimson atau text editor lainnya
D. Langkah Kerja
1. Baca dan pahami dasar teori di atas. 2. Lakukan kompilasi dan eksekusi terhadap contoh-contoh source code LP-01 dan LP-02. 3. Catat hasilnya dan fahami cara kerja program server dan client. 4. Lakukan kompilasi dan eksekusi terhadap contoh-contoh source code LP-03. 5. Catat hasilnya dan fahami cara kerja program server dan client. 6. Beri tanda comment pada LP-03 baris 30-31, dan hilangkan tanda comment pada LP-03 baris 32-33. 7. Kompilasi ulang dan eksekusi program tersebut, catat dan amati apa yang terjadi. 8. Kerjakan tugas individu di bawah ini.
E. Tugas Individu
1. Buatlah skrip program Client dan Server untuk menghitung luas lingkaran menggunakan GUI seperti pada Labsheet 01 sebelumnya, dengan tambahan server dapat menampilkan IP Address client. 2. Buat makalah (maks 2 halaman) untuk menjelaskan prinsip kerja program tersebut. 3. Kumpulkan file makalah dan skrip program tersebut melalui besmart.uny.ac.id dengan ketentuan: a. File yang di-upload dalam bentuk zip-file dari sebuah folder tempat meletakkan file makalah dan skrip program. b. Nama zip-file dan folder menggunakan aturan nama_nim
F. Lampiran Daftar Pustaka Liang, Y. Daniel, 2007. Introduction to Java programming: comprehensive version 6th Edition, New Jersey: Prentice Hall. Hariri, Salim, dan Parashar, Manish, 2004. Tools and Environments for Parallel and Distributed Computing. Canada: John Wiley & Sons.
Dibuat oleh :
Eko Marpanaji
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :