Bagaimana
Memrograman Client Server Menggunakan Socket
Pendahuluan
Keseluruhan
proses dan cara kerja di mesin Anjungan Tunai Mandiri menggunakan
pemrograman klien server. Kita nasabah bank lokal tercatat dan dapat
dipantau pada BI(Bank Indonesia), kita melakukan transaksi kartu
kredit juga tercatat pada BI, Kita berbelanja pada minimarket
transaksi kita tercatat di pusat minimarket tersebut. Pada dasarnya
kita mengakses aplikasi web seperti forum, chatting,
semua tercatat dan terpantau oleh komputer server. Contoh
tersebut adalah salah satu bentuk pemrograman aplikasi klien server.
Setiap
transaksi yang berhubungan dengan komputer pasti tercatat. Bahkan
posisi kita sekalipun mungkin sudah tercatat seperti aplikasi google
map. Hidup kita sudah tidak sendirian, karena kita akan semakin
terhubung dengan internet dan jaringan semakin tidak ada privasi.
Mesin ATM yang kita gunakan untuk bertransaksi tercatat pada bank
sehingga dapat terbaca oleh BI.
Siapapun
kita, yang hidup di era teknologi saat ini berhubungan dengan
aplikasi berbasis klien dan server. Seperti halnya, aplikasi web
sosial seperti Facebook, forum, Whatsapp, Line menggunakan prinsip
klien dan server.
Dengan
kondisi tersebut, masih banyak yang tidak tahu tentang cara kerja
aplikasi klien server. Oleh karena itu, kita akan membahas mengenai
sistem dan cara kerjanya. Hal ini dapat bermanfaat karena kita jika
menginginkan membangun aplikasi serupa maka kita dapat melakukannya
dengan benar. Selain itu juga kita dapat mengetahui dan berhati-hati
dalam menyebarkan informasi, baik pribadi maupun umum.
Pembahasan
Pada
dasarnya aplikasi klien server itu seperti dua manusia yang saling
bercakap-cakap. Dalam percakapan manusia, terdapat seorang yang
memberikan informasi dan lainnya mendengerkan. Setelah itu terdapat
proses membalas informasi dan lainnya mendengarkan balasan tersebut.
Dari percakapan tersebut terdapat proses memberi, menerima, membalas,
dan menerima balasan.
Aplikasi
klien memberikan request kepada server, kemudian
server mengenalinya dan memberikan balasan balik sesuai yang diminta
klien. Untuk kemudian diterima oleh klien dan menampilkan hasil dari
server. Seperti pada proses percakapan manusia, terlebih dahulu kedua
belah pihak harus saling mengenal. Komputer klien dan server terlebih
dahulu harus saling mengenal juga.
Salah
satu proses pengenalan aplikasi klien dengan server adalah melalui
identitas seperti port. Port komputer yang sedang dijalankan
merupakan sambungan menggunakan jaringan. Sehingga, masing-masing
mempunyai identitas unik. Identitas ini tersimpan pada kode
IP(internet protocol). Hal ini merupakan konsep yang
disediakan oleh TCP(transfer control protocol) dengan
menyediakan fasilitas berupa koneksi dan komunikasi antar perangkat
dengan jarak yang jauh.
Hubungan
yang terjadi pada TCP melalui socket. Socket digunakan untuk
menghubungkan klien dengan server. Hubungan ini seperti adanya kabel
yang dihubungkan antara klien dengan server. Peran dari socket disini
adalah menerapkan prinsip TCP yaitu menghubungkan dan
mengkomunikasikan port dan IP aplikasi klien dengan aplikasi server.
Oleh karena itu socket mengandung informasi port dan informasi IP
masing-masing perangkat.
Melalui
prinsip socket ini kita dapat membangun aplikasi berbasis klien
server. Salah satu bahasa pemrograman yang mendukung pengenalan
socket ini adalah java. Pemrograman java memiliki java class socket
yang akan menangani komunikasi antar socket. Karena pada dasarnya
socket bisa terdapat lebih dari satu dalam aplikasi klien server.
Berikut salah satu contoh pemrograman klien server menggunakan bahasa
pemrograman java.
DateServer.java
package
edu.lmu.cs.networking;
import
java.io.IOException;
import
java.io.PrintWriter;
import
java.net.ServerSocket;
import
java.net.Socket;
import
java.util.Date;
/**
*
A TCP server that runs on port 9090. When a client connects, it
*
sends the client the current date and time, then closes the
*
connection with that client. Arguably just about the simplest
*
server you can write.
*/
public
class DateServer {
/**
*
Runs the server.
*/
public
static void main(String[] args) throws IOException {
ServerSocket
listener = new ServerSocket(9090);
try
{
while
(true) {
Socket
socket = listener.accept();
try
{
PrintWriter
out =
new
PrintWriter(socket.getOutputStream(), true);
out.println(new
Date().toString());
}
finally {
socket.close();
}
}
}
finally
{
listener.close();
}
}
}
Dari
Sisi Klien, dengan class DateClient.
package
edu.lmu.cs.networking;
import
java.io.BufferedReader;
import
java.io.IOException;
import
java.io.InputStreamReader;
import
java.net.Socket;
import
javax.swing.JOptionPane;
/**
*
Trivial client for the date server.
*/
public
class DateClient {
/**
*
Runs the client as an application. First it displays a dialog
*
box asking for the IP address or hostname of a host running
*
the date server, then connects to it and displays the date that
*
it serves.
*/
public
static void main(String[] args) throws IOException {
String
serverAddress = JOptionPane.showInputDialog(
"Enter
IP Address of a machine that is\n" +
"running
the date service on port 9090:");
Socket
s = new Socket(serverAddress, 9090);
BufferedReader
input =
new
BufferedReader(new InputStreamReader(s.getInputStream()));
String
answer = input.readLine();
JOptionPane.showMessageDialog(null,
answer);
System.exit(0);
}
}
Selamat
Mencoba
Daftar
Pustaka
Materi
Kuliah, http://cs.lmu.edu/~ray/notes/javanetexamples/
Oracle,
What is
Socket?, https://docs.oracle.com/javase/tutorial/networking/sockets/definition.html,
2015.
Tidak ada komentar:
Posting Komentar