1. Menampilkan IP Lokal (Showing local IP)
Untuk mendapatkan IP komputer memang mudah, namun
ada program sederhana yang bisa menampilkan IP number masing-masing. Dilihat
dari source codenya, program ini akan mengambil IP yang ditujukan di baris host
= InetAddress.getLocalHost();, sedangkan
InetAddress host = null; adalah baris
program untuk menyimpan alamat IP Local yang sedang digunakan. Source codenya
dapat dilihat sbb:
public class getIP {
public static void main(String args[]) throws Exception {
InetAddress host = null;
host = InetAddress.getLocalHost();
byte ip[] = host.getAddress();
for (int i=0; i<ip.length; i++) {
if (i > 0) {
System.out.print(".");
}
System.out.print(ip[i] & 0xff);
}
System.out.println();
}
}
Dan source code diatas akan menampilkan output
seperti ini:
2. Mendapatkan Host Name Komputer (Getting
Computer Host Name)
Program sederhana ini merupakan cara mendapatkan
nama PC melalui program. Cara kerjanya pun simple, program ini akan
mendeklarasikan sebuat variable yang bernama host. Dengan objek tersebut,
method getHostName() akan dijalankan untuk mencetak nama PC yang sedang
digunakan. Source codenya adalah:
public class getName {
public static void main(String args[]) throws Exception {
InetAddress host = null;
host = InetAddress.getLocalHost();
System.out.println("Nama komputer Anda: " +
host.getHostName());
}
}
dengan output dibawah ini
OUTPUT
3. Mendapatkan Host Name berdasarkan IP (Getting Host Name based on IP)
Program
ini pada dasarnya merupakan konsep untuk mendapatkan nama PC, dari IP yang
telah kita masukkan. Cara kerjanya adalah percabangan IF yang ada didalam
program akan mengidentifikasi panjang IP yang dimasukkan,, apabila panjangnya
==0 atau tidak ada IP yang ditulis, maka akan mencetak cara pemakaian
programnya, yaitu Pemakaian:
java IPtoName <IP address>, lalu program akan keluar, dan menginisialisasikan nilai host menjadi 0. Try
and catch dalam program ini akan dijalankan, apabila IP yang dimasukkan salah,
maka catchnya akan mencetak invalid
IP - malformed IP,
lalu program akan keluar. Berikut source codenya.
import java.net.*;
public class IPtoName {
public static void main(String args[]) {
if (args.length == 0) {
System.out.println("Pemakaian: java IPtoName <IP
address>");
System.exit(0);
}
String host = args[0];
InetAddress address = null;
try {
address = InetAddress.getByName(host);
} catch (UnknownHostException e) {
System.out.println("invalid IP - malformed IP");
System.exit(0);
}
System.out.println(address.getHostName());
}
}
OUTPUT
4. Mendapatkan IP Number berdasarkan Host Name (getting IP Number based on
Host Name)
Pada
prinsipnya, program ini sama dengan program sebelumnya, yaitu aka nada informasi
yang keluar apabila kita memasukkan inputan yang diminta. Namun, kali ini IP
yang akan di cetak sebagai output.
Cara
kerjanya adalah ketika program mulai dijalankan, akan langsung masuk ke dalam
percabangan IF. Apabila panjang array ==0, atau host name tidak dimasukkan,
maka program akan mencetak Pemakaian: java NsLookup <hostname> dan keluar. Program akan menginisialisasi nilai host menjadi 0 dan
InetAddress = null. Program akan mendapatkan IP address apabila inputannya
telah benar dan tidak terjadi kesalahan. Apabila Hostnamenya berbeda, maka
catch-nya akan mencetak Unknown host. Berikut source codenya:
import
java.net.*;
public
class NsLookup {
public static void main(String args[]) {
if (args.length == 0) {
System.out.println("Pemakaian: java NsLookup
<hostname>");
System.exit(0);
}
String host = args[0];
InetAddress address = null;
try {
address = InetAddress.getByName(host);
} catch(UnknownHostException e) {
System.out.println("Unknown host");
System.exit(0);
}
byte[] ip = address.getAddress();
for (int i=0; i<ip.length; i++) {
if (i > 0) System.out.print(".");
System.out.print((ip[i]) & 0xff);
}
System.out.println();
}
}
OUTPUT
5. Implementasi Aplikasi Sederhana Client-Server
Untuk implementasi dari aplikasi ini, hanya akan dilakukan di dalam 1 PC untuk server dan client. namun agar proses tidak bertabrakan, maisng-masing program akan dijalankan di command prompt yang berbeda. Pertama akan dijelaskan untuk server-side.
Cara kerja program server-side adalah setelah mengimport lib, setting Port yang akan digunakan, pemakaian port ini HARUS SAMA dengan program client-side nantinya. Port ini pun bisa diubah apabila portnya overload.
setelah itu, deklarasikan nilai2 yang akan dipakai di program. setting semua variabel dengan null.
setelah itu, deklarasikan nilai2 yang akan dipakai di program. setting semua variabel dengan null.
Program ini memakai 3 try-catch, untuk try-catch 1, berisikan pembuatan objek ServerSocket. Apabila berhasil, maka program akan mencetak Aplikasi Server hidup.....
try-catch 2 berisikan pembuatan object checkServer yang akan menampung nali-nilai dan membuat objek baru is dan os.
try-catch 3 untuk membaca data input yang dimasukkan user. apabila user menjawab salam, maka server akan membalas dengan salam juga. Namun apabila user mengimput selain kata "salam", maka progra m akan mencetak "Maaf, saya tidak mengerti".
dan tr-catch 4 bertujuan untuk mengclose objek2 yang telah digunakan, dan keluar dari program.
berikut source code untuk program simpleServer
import java.io.*;
import java.net.*;
public class simpleServer1 {
public final static int TESTPORT = 5000;
public static void main(String args[]) {
ServerSocket checkServer = null;
String line;
BufferedReader is = null;
DataOutputStream os = null;
Socket clientSocket = null;
try {
checkServer = new ServerSocket(TESTPORT);
System.out.println("Aplikasi Server hidup ...");
} catch (IOException e) {
System.out.println(e);
}
try {
clientSocket = checkServer.accept();
is = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
os = new DataOutputStream(clientSocket.getOutputStream());
} catch (Exception ei) {
ei.printStackTrace();
}
try {
line = is.readLine();
System.out.println("Terima : " + line);
if (line.compareTo("salam") == 0) {
os.writeBytes("salam juga");
} else {
os.writeBytes("Maaf, saya tidak mengerti");
}
} catch (IOException e) {
System.out.println(e);
}
try {
os.close();
is.close();
clientSocket.close();
} catch (IOException ic) {
ic.printStackTrace();
}
}
}
Program client-side
Cara kerja program client-side adalah setelah mengimport lib, setting Port yang akan digunakan, pemakaian port ini HARUS SAMA dengan program client-side nantinya. Port ini pun bisa diubah apabila portnya overload.
setelah itu, deklarasikan nilai2 yang akan dipakai di program. setting semua variabel dengan null.
setelah itu, deklarasikan nilai2 yang akan dipakai di program. setting semua variabel dengan null.
Program
ini memakai 3 try-catch, untuk try-catch 1, berisikan pembuatan objek
ServerSocket. Apabila berhasil, maka program akan mencetak Aplikasi
Server hidup.....
try-catch 2 berisikan pembuatan object checkServer yang akan menampung nali-nilai dan membuat objek baru is dan os.
try-catch
3 untuk membaca data input yang dimasukkan user. apabila user menjawab
salam, maka server akan membalas dengan salam juga. Namun apabila user
mengimput selain kata "salam", maka progra m akan mencetak "Maaf, saya
tidak mengerti".
dan tr-catch 4 bertujuan untuk mengclose objek2 yang telah digunakan, dan keluar dari program.
berikut source codenya:
import java.io.*;
import java.net.*;
public class simpleClient {
public final static int REMOTE_PORT = 5000;
public static void main(String args[]) throws Exception {
Socket cl = null;
BufferedReader is = null;
DataOutputStream os = null;
BufferedReader stdin = new BufferedReader(new
InputStreamReader(System.in));
String userInput = null;
String output = null;
// Membuka koneksi ke server pada port REMOTE_PORT
try {
cl = new Socket(args[0], REMOTE_PORT);
is = new BufferedReader(new
InputStreamReader(cl.getInputStream()));
os = new DataOutputStream(cl.getOutputStream());
} catch(UnknownHostException e1) {
System.out.println("Unknown Host: " + e1);
} catch (IOException e2) {
System.out.println("Erorr io: " + e2);
}
// Menulis ke server
try {
System.out.print("Masukkan kata kunci: ");
userInput = stdin.readLine();
os.writeBytes(userInput + "\n");
} catch (IOException ex) {
System.out.println("Error writing to server..." + ex);
}
// Menerima tanggapan dari server
try {
output = is.readLine();
System.out.println("Dari server: " + output);
} catch (IOException e) {
e.printStackTrace();
}
// close input stream, output stream dan koneksi
try {
is.close();
os.close();
cl.close();
} catch (IOException x) {
System.out.println("Error writing...." + x);
}
}
}
berikut source codenya:
import java.io.*;
import java.net.*;
public class simpleClient {
public final static int REMOTE_PORT = 5000;
public static void main(String args[]) throws Exception {
Socket cl = null;
BufferedReader is = null;
DataOutputStream os = null;
BufferedReader stdin = new BufferedReader(new
InputStreamReader(System.in));
String userInput = null;
String output = null;
// Membuka koneksi ke server pada port REMOTE_PORT
try {
cl = new Socket(args[0], REMOTE_PORT);
is = new BufferedReader(new
InputStreamReader(cl.getInputStream()));
os = new DataOutputStream(cl.getOutputStream());
} catch(UnknownHostException e1) {
System.out.println("Unknown Host: " + e1);
} catch (IOException e2) {
System.out.println("Erorr io: " + e2);
}
// Menulis ke server
try {
System.out.print("Masukkan kata kunci: ");
userInput = stdin.readLine();
os.writeBytes(userInput + "\n");
} catch (IOException ex) {
System.out.println("Error writing to server..." + ex);
}
// Menerima tanggapan dari server
try {
output = is.readLine();
System.out.println("Dari server: " + output);
} catch (IOException e) {
e.printStackTrace();
}
// close input stream, output stream dan koneksi
try {
is.close();
os.close();
cl.close();
} catch (IOException x) {
System.out.println("Error writing...." + x);
}
}
}
######
Tulisan di atas merupakan tugas Pemrograman Jaringan guna memenuhi nilai tambah untuk UTS