Sejauh ini, penulis memberikan contoh
mengirimkan pesan string lewat soket. Mungkinkah untuk mengirimkan obyek secara
utuh lewat soket? Jawabannya adalah bisa. Mekanisme ini disebut dengan
serialisasi. Syaratnya adalah kelas dari obyek yang hendak dikirimkan lewat
soket haruslah mengimplementasikan Serializeble.
Perlu diperhatikan kelas yang mengimplementasikan serializable tidak butuh
melakukan overriding method apapun. Kelas interface seriazable terdapat pada
paket Java.io.
Selain itu obyek yang akan dikirimkan lewat
soket harus menggunakan ObjectOutputStream
sedangkan untuk membacanya menggunakan ObjectInputStream.
Serialisasi ini bukan saja berguna untuk mengirimkan obyek lewat soket
namun juga untuk menyimpan obyek secara persiten kedalam file.
Pada tahap ini saya akan membuat Tutorial
kelas staff yang berisi informasi data pegawai. Data staff akan dikirimkan dari
suatu aplikasi client ke aplikasi server lewat soket. Pada kali ini kita menggunakan
3 coding java.
- Ketikkan kode
sumber (source code) pada Notepad, Editplus, atau IDE lainnya, dan
saya memilih menggunakan Notepad++ sebagai text editor. Pada aplikasi
ini menggunakan 3 source code saya beri nama Staff.java, ObjectServer.java,
ObjectClient.java Adapun source code-nya adalah sebagai berikut
:
v Staff.java
import java.io.*;
public class Staff implements Serializable{
String nama;
String divisi;
int umur;
public Staff (String nama , String divisi,
int umur)
{
this.nama=nama;
this.divisi=divisi;
this.umur=
umur;
}
public void print()
{
System.out.println("Data Staff:
");
System.out.println("Nama:" + nama);
System.out.println("Divas:" + divisi);
System.out.println("Umur:"+ umur);
}
}
v ObjectServer.java
import java.net.*;
import java.io.*;
public class ObjectServer {
private static int SRV_PORT=5000;
private static ObjectInputStream is=null;
public static void main(String argv[])
throws Exception{
//membnat
soket server dan menunggu koneksi
ServerSocket
soketServer= new ServerSocket(SRV_PORT);
Socket
soketClient= soketServer.accept() ;
//membuat
stream untuk baca obyek
is=
new ObjectInputStream(soketClient.getInputStream());
//menunggu
dan membaca obyek yang dikirimkan
Staff
pegawai= (Staff) is.readObject();
System.out.println("Server
menerima data Pegawai");
pegawai.print();
}
}
v ObjectClient.java
import java.net.*;
import java.io.*;
public class ObjectClient{
private static int SRV_PORT = 5000;
private static ObjectOutputStream os=null;
public static void main(String argv[])
throws Exception{
try{
//membuat
soket client
Socket
soketClient= new Socket("127.0.0.1", SRV_PORT);
//membuat
stream untuk pengiriman obyek
os=
new
ObjectOutputStream(soketClient.getOutputStream());
//membuat
obyek dan mengirimkannya lewat stream obyek
Staff
pegawai= new Staff("Alfian","IT",22);
os.writeObject(pegawai);
System.out.println("Client
mengirim data pegawai:");
pegawai.print();
}
catch(Exception
e) {
e.printStackTrace()
;
}
}
}
2. Kemudian simpan kedua
program tadi pada direktori mana saja, dan saya menyimpannya di direktori
"D:\tugas progjar\D1-8".
3. Setelah disimpan, kemudian buka 2 jendela cmd (command prompt) pada menu Start > Accessories > Command Prompt atau langsung ketikkan cmd pada menu Run untuk mengkompile dan menjalankan program tersebut. Pada masing-masing cmd, ketikkan D: [enter] cd tugas progjar [enter] cd D1-8 [enter]
maka root direktori akan berubah menjadi " D:\tugas progjar\D1-8" kemudian compile program tersebut dan jalankan dengan cara sebagai berikut :
Output Server
Output Client
0 komentar:
Posting Komentar