Senin, 10 Juli 2017

Pemrograman Jaringan Java

getIP
code dibawah merupakan code untuk menampilkan IP adress suatu komputer

import java.net.*;
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 0) {
System.out.print(“.”);
}
System.out.print(ip[i] & 0xff);
}
System.out.println();
}}

code import java.net.* akan mengambil semua package dari library java.net yang berisi tentang konfigurasi jaringan pada java. inisialisasi InetAddres host dibuat value null / isi dari alamat internet dari alamat tidak boleh kosong, selanjutnya dari InetAddres.getLocalHost kita akan membuat sebuah array yang diberi nama ip. ip didapat dari host.getAddress. selanjutnya akan di cetak dalam dan dipisahkan sesuai dengan byte yang di dapat dengan tanda (.) lalu akan dilakukan secara perulangan.




getName

code dibawah digunakan untuk mengambil host name dari komputer

import java.net.*;
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());
}} 

InetAddress host = null; dan host = InetAddress.getLocalHost(); sama dengan code sebelumnya hanya pada code ini function utama adalam mendapatkan hot name dari komputer.

IPtoName
code berikut ini adalah code dimana kita akan mendapatkan host dari IP dengan menggunakan java.
import java.net.*;
public class IPtoName {
public static void main(String args[]) {
if (args.length == 0) {
System.out.println(“Pemakaian: java IPtoName “);
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());
}}


Pada program ini, terdapat kondisi jika panjang string sama dengan 0, akan mencetak Pemakaian: java IPtoName . lalu kita mendeklarasikan String host dengan index array args 0 dan address dengan InetAddress bernilai null.  Blok try dan catch digunakan jika terdapat kesalahan program. pada blok try akan mencari nama host lalu di blok catch akan menangkap eksepsi berupa UnknownHostException e   invalid IP – malformed IP. Jika blok try catch sudah dilewati, program akan mencetak nama computer atau hostname.


NSLookUp
code berikut digunakan untuk menampilkan informasi tentang nameserver dengan nslookup.

import java.net.*;
public class NsLookup {
public static void main(String args[]) {
if (args.length == 0) {
System.out.println(“Pemakaian: java NsLookup “);
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 0) System.out.print(“.”);
System.out.print((ip[i]) & 0xff);
}
System.out.println();
}}
Pada code diatas kita akan mencetak pemakaian NsLookup, code ini dapat dijalankan jika catch sudah dijalankan.Yaitu baris program untuk menghasilkan atau mencetak ip address dengan byte ip[] = host.getAddress(); artinya kita membuat sebuah array bernama ip yang menampung nilai dari host  dengan menggunakan function untuk mendapatkan ip address getAddress. Terakhir akan mencetak ke layar ip address yang didapat dengan dipisahkan masing-masing byte oleh (.) melalui perulangan diatas.

 Aplikasi Client Server

Berikut merupakan code program java sederhana untuk menampilkan pesan antara client dan server dengan menggunakan socket TCP.

Server side
import java.io.*;
import java.net.*;
public class simpleServer {
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();
}}}
Pada saat aplikasi ini dijalankan di sisi server akan memanfaatkan layanan TCP.  code diatas pertama akan mengecek apakah port 5000 sedang digunakan atau tidak. pada socket pertama memiliki server yang akan digunakan untuk mengirim response, jika status serversocket akan dicetak "aplikasi server hidup" pada port 5000. lalu pada try blok ke dua berfungsi untuk menerima request dari client socket. lalu program akan membandingkan salam yang diterima antara client dan server.


Client side
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);
}}}
code ini digunakan pada sisi client. Memanfaatkan port 5000 sebagai jalur komunikasi data pada TCP, dengan blok try pertama berfungsi untuk membuka koneksi ke server, jika gagal atau host tidak ditemukan akan muncul unknown host. Blok try kedua berfungsi untuk menulis ke server dengan memasukkan kata salam agar pesan dapat diterima server. Blok try ketiga berfungsi untuk menerima response dari server dan menampilkannya. Lalu terakhir akan menutup koneksi,input stream dan output stream.



Tidak ada komentar:

Posting Komentar