Tugas Pemrograman Jaringan 1(Socket)

Standard

Pada sistem operasi linux ada banyak socket, tetapi ada 2 yang paling utama
yaitu stream socket dan datagram socket. Stream socket digunakan untuk sistem
komunikasi 2 arah dan menggunakan protokol TCP (Transmission Control
Protocol). Contoh aplikasi yang menggunakan stream socket adalah telnet dan
HTTP (web browser). TCP menjamin data terkirim secara urut dan bebas dari
error, sedangkan IP (Internet Protocol) bertugas untuk mengatur lalu-lintas
routing.
Jenis socket yang kedua yaitu datagram socket disebut juga connectionless
socket sebab untuk interaksi client-server tidak harus selalu terhubung terus
menerus. Jika client mengirimkan data ke server, data tersebut ada kemungkinan
sampai ke server atau tidak. Untuk itu client menunggu sinyal ‘error free’ dari
client. Jika client tidak menerima sinyal ‘error free’ dalam suatu kurun waktu,
maka client akan mengirimkan lagi data tersebut. Contoh aplikasi yang
menggunakan datagram socket adalah tftp dan bootp.

Sistem terdistribusi terdiri atas kumpulan komputer yang berdiri sendiri (otonom)dan saling bekerja sama, dan mungkin juga berbagi pakai sumber daya komputasi
(prosesor, memori, storage) untuk menyediakan layanan bagi pengguna. Untuk dapat berkomunikasi dengan komputer lain, masing-masing komputer diberi identitas pada level aplikasi berupa alamat IP (Internet Protocol) seperti 192.168.29.251.

Berikut adalah contoh -contoh program yang digunakan dalam penanganan nama dan IP menggunakan Java

A.Listing coba1.java

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

OUTPUT:

LOGIKA PROGRAM:
Untuk listing program yang pertama ini digunakan untuk menampilkan IPaddress yang ada pada komputer saya. Dimana penjelasan perintah java seperti berikut, untuk langkah yang pertama program akan mengimport java.net. Kemudian program membuat class dengan nama coba1, perintah yang selanjutnya program akan mendeklarasikkan InetAddress host benilai null kemudian host akan didapatkan dari nilai InetAddress host dan terakhir pada byte ip didapatkan nilai dari hostAddress. Langkah terkahir terdapat suatu perulangan for dimana di bagian ini akan terjadi pada saat variabel i bernilai 0, dan nilai variabel i lebih kecil dari IP jika kondisi ini terpenuhi maka nilai i akan bertambah. Jika semua perintah sudah di ketik, maka compile file tersebut dengan menggunakan perintah javac coba1.java. Apabila dari compile tidak terdapat error maka running program tersebut dengan menggunakan perintah java coba1

B.Listing Coba2.java

import java.net.*;
public class coba2 {
public static void main(String args[]) throws Exception {
InetAddress host = null;
host = InetAddress.getLocalHost();
System.out.println(“Nama komputer Anda: ” +
host.getHostName());
}
}

OUTPUT:

LOGIKA PROGRAM:
digunakan untuk mencetak host name dari komputer, dimana penjelasan dari program adalah sebagai berikut. Program awal akan menginport java.net, untuk program ini menggunakan nama class tg2. Selanjutnya masuk pada pendeklarasian dimana bagian pendeklarasian adalah InetAddress host = null; dan host = InetAddress.getLocalHost(); maksudnya adalah InetAddress host bernilai null dan host didapatkan dari nilai InetAddress pada localhost.Kemudian masukkan perintah yang digunakan untuk menampilkan host name dari komputer tersebut.

C.Listing Coba3.java

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

OUTPUT:

LOGIKA PROGRAM:
Program diatas digunakan untuk IP lokal dengan IP komputer yang lain dimana penjelasannya adalah berikut ini. Program akan menginport java.net dan masuk pada nama class yang dibuat yaitu IPtoName. Untuk program ini terdapat kondisi if dimana jika program nilainya lebih besar sama dengan 0 maka cetak nama pemakai dan IPtoName lalu program akan kembali ke semula dan program akan mendeklarasikkan String host yaitu 0 dan InetAddress address bernilai null. Kemudian program akan mengulang ke bagian address yang terdapat di InetAddress pada host kemudian apabila perulangan tersebut tidak terpenuhi maka akan mencetak invalid IP – malformed ip.
Untuk hasil output ini pada saat menjalankan program masukkan terlebih dulu IPAddress kemudian host name dari komputer. Jika sudah maka jalankan kembali program java tersebut maka host name tersebut akan terganti dengan IP. Dan akan mencetak IP komputer yang lain yaitu 10.189.46.244 dengan host name 10.189.46.244

D.Listing coba4.java

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

OUTPUT:

LOGIKA PROGRAM:
Pada aplikasi ini akan menampilkan NsLookup yaitu menampilkan host name dan ip address yang ada pada laptop saya. Untuk penjelasan dari program adalah sebagai berikut ini, program akan mengimport java.net kemudian program akan masuk ke dalam class program yang bernama NsLookup. Pada program utama ini akan mencetak Pemakai : Java NsLookup hostname kemudian aka mendeklarasikan String host adalah 0 dan InetAddress address bernilai null kemudian apabila host tidak dikenal maka akan tampil Unknown host. Untuk bagian listing byte ip nilainya didapat dari address lalu apabila i > 0 dan i
Sehingga pada output akan mencetak host name yaitu hpmini-pc dan ip address yaitu 10.189.46.255.

E. LISTING PROGRAM CobaA.java(Server)

import java.io.*;
import java.net.*;
public class cobaA {
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();
}
}
}

OUTPUT:

LOGIKA PROGRAM:
Listing programvdiatas merupakan listing untuk sebuah komputer yang dijadikan server dimana server sebagai pusat dari semua client. Saat program server berhasil untuk dijalankan maka akan muncul pesan “Aplikasi Server Hidup…”

F.LISTING PROGRAM simpleclient.java (Client)

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);
}
}
}

OUTPUT:

LOGIKA PROGRAM:
Listing diatas merupakan listing untuk komputer yang dijadikan client, dimana aplikasi client ini akan mengirimkan pesan ke server & server akan membalas pesan dari client. Dan jika program dapat dijalankan dengan baik maka akan menghasilkan.
Program di atas terdapat merupakan sebuah program client dan server, pada bagian simple client bertujuan untuk memberikkan permintaan pada sebuah server untuk bagian simple server bertujuan untuk melayani permintaan dari server. Sehingga tujuan dari program ini adalah adanya sebuah interaksi antara client dan server.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s