Username Password

Register Here || Lost Password
View Thread
Explore Your Brain » Pemrograman » Java
Tips n Trick Java (Aplikasi Client Server Java)
Username
Password
Register FAQ Members List Today's Posts Search

Print Thread

03-07-2009 01:52 PM Tips n Trick Java (Aplikasi Client Se...
User Avatar

insomniacz
Genin


Posts: 50
Joined: 29.06.09
Pasti anda pernah melakukan chating? Pasti pernah kan….? Hayo ngaku…..! Oke, pada tulisan kali ini, saya dengan segala kerendahan hati dan kebodohan diri, ingin membagi kode program aplikasi client server menggunakan java. Namun, aplikasi ini masih sangat banyak kekurangannya dikarenakan hanya 1 client yang bisa berkomunikasi dengan server. Ini dikarenakan tidak menggunakan multithreading, maklum saya masih bodoh tentang java. Mungkin jika ada kesempatan akan saya tulis lagi aplikasi yang multi client.
Sangat disarankan anda telah menguasai dasar java, biar tidak bingung mencoba kode program ini. Ini baru saya coba di windows bajakan, maklum computer saya sedang di opname, jadi tidak bisa bermesra-mesraan dengan si penguin linux. Menulis ini saja lewat safe mode, maklum memory-nya sudah tidak kuat dikarenakan saya paksakan untuk menggunakan netbeans. “Bodoh !! sudah tahu kapasitas memory-nya rendah, masih saja nekad”.
Sebelum memulai ada baiknya kita mengheningkan cipta untuk korban kebiadaban Israel yaitu rakyat Palestina semoga arwahnya di terima oleh Allah SWT, amin. Kita juga harus memanjatkan doa untuk ketenangan keyboard, dvdrom, serta power supply saya yang telah wafat, semoga saya cepat diberikan penggantinya, amin. “Mengheningkan Cipta, Mulai !!” (sedang mengheningkan cipta) “Selesai !!”.

Oke, kini kita masuk ke pembahasan. Kode program berikut di bagi menjadi 2, yaitu untuk Server dan Client.


package rdp.laboratories;

import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.net.BindException;

import java.io.IOException;
import java.io.InputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;

public class AplikasiServer {
public static void main(String[] args) {

if (args.length != 1) {
System.out.println("Masukkan Port Yang Akan Digunakan");
System.out.println("Contoh : 8080");
System.exit(1);
}
System.out.println("\t\tCopyleft 04012009 Insomniacz at RDP Laboratories\n\n");
try {
// Buat ServerSocket & Buka Layanan (Listening)
ServerSocket server = new ServerSocket(Integer.parseInt(args[0]));

// Melakukan Perulangan Tanpa Batas
while (true) {
System.out.print("Menunggu Koneksi Dari Client.....");

// Terima Koneksi Dari Client
Socket koneksi = server.accept();
System.out.println(" Ada Client Yang Telah Terkoneksi\n");

// Buka Saluran Pesan Masuk Dari Client
InputStream in = koneksi.getInputStream();

// Ubah byte Menjadi char
InputStreamReader inReader = new InputStreamReader(in);

// Baca per Baris
BufferedReader pipaMasuk = new BufferedReader(inReader);

// Buka Saluran Keluar
OutputStream out = koneksi.getOutputStream();

// Mengirim per Baris
PrintWriter pipaKeluar = new PrintWriter(out);
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String pesanClient = "";
String balasanPesanKeClient = "";

while ( (pesanClient = pipaMasuk.readLine() ) != null) {
// Menerima Pesan dari Client
System.out.println("Client Message : " + pesanClient);

// Mengirim Pesan Balasan Ke Client
System.out.print("Send Message\t: ");
balasanPesanKeClient = input.readLine();
System.out.println();
pipaKeluar.println(balasanPesanKeClient);
pipaKeluar.flush();
}
}
}
catch (NumberFormatException nfe) {
System.err.println("Maaf, Anda Menggunakan Karakter. Pakai PORT Yang Sesuai.");
System.err.println("Contoh : 9090");
}
catch (IllegalArgumentException iae) {
System.err.println("Maaf, Anda Memasukkan Nilai PORT Yang Melebihi Jumlah PORT Yang Ada");
}
catch (BindException be) {
System.err.println("Maaf, PORT " + args[0] + " Telah Terpakai. Gunakan PORT Yang Lain.");
}
catch (SocketException se) {
System.err.println("Client Telah Keluar !");
}
catch (IOException io) {
System.err.println("Terjadi Exception : " + io.toString());
}
}
}

Setelah kita membuat program untuk Server, kini program untuk Client.


package rdp.laboratories;

import java.net.Socket;
import java.net.SocketException;
import java.net.BindException;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.BufferedReader;

public class AplikasiClient {
public static void main(String[] args) {

if (args.length != 2) {
System.err.println("Masukkan HOSTNAME & PORT");
System.err.println("Contoh : 127.0.0.1 8080");
System.err.println("Contoh : localhost 9090");
System.exit(1);
}
System.out.println("\t\tCopyleft 04012009 Insomniacz at RDP Laboratories\n\n");

try {
// Buat Objek Socket & Buka Koneksi
Socket client = new Socket(args[0], Integer.parseInt(args[1]));

// Remote Address & PORT
System.out.println("\t\t\t Informasi Alamat");
System.out.println("Remote Server : " + client.getInetAddress());
System.out.println("PORT : " + client.getPort());
System.out.println("PORT Dinamis : " + client.getLocalPort());
System.out.println("\n\n");

// Buka Saluran Pesan Masuk Dari Server
InputStream in = client.getInputStream();

// Ubah byte ke char
InputStreamReader inReader = new InputStreamReader(in);

// Baca per Baris
BufferedReader pipaMasuk = new BufferedReader(inReader);

// Buka Saluran Keluar
OutputStream out = client.getOutputStream();

// Mengirim per Baris
PrintWriter pipaKeluar = new PrintWriter(out);
BufferedReader userIn = new BufferedReader(new InputStreamReader(System.in));
String balasanPesanDariServer = "";
String pesanClient = "";

do {
System.out.print("Send Message : ");
pesanClient = userIn.readLine();

// Menyiapkan Pesan di Saluran Keluar
pipaKeluar.println(pesanClient);

// Kirim Pesan ke Server
pipaKeluar.flush();

// Menerima Balasan dari Server
balasanPesanDariServer = pipaMasuk.readLine();

// Mencetak Pesan dari Server
System.out.println("Server Message : " + balasanPesanDariServer);
System.out.println();
} while ( (!pesanClient.equalsIgnoreCase("close")) );
}
catch (NumberFormatException nfe) {
System.err.println("Maaf, Anda Menggunakan Karakter. Pakai PORT Yang Sesuai.");
System.err.println("Contoh : 9090");
}
catch (IllegalArgumentException iae) {
System.err.println("Maaf, Anda Memasukkan Nilai PORT Yang Melebihi Jumlah PORT Yang Ada");
}
catch (BindException be) {
System.err.println("Maaf, PORT " + args[0] + " Telah Terpakai. Gunakan PORT Yang Lain.");
}
catch (SocketException se) {
System.err.println("Koneksi GAGAL !!. Server not connected !");
}
catch (NullPointerException npe) {
System.err.println("Koneksi REJECT !!.");
}
catch (IOException ioe) {
System.err.println("Terjadi Exception : " + ioe.toString());
}
}
}


Bagaimana, belum keriting kan tangannya? Untuk menjalankannya, anda harus mengkompilasinya setelah itu jalankan program AplikasiServer terlebih dahulu, baru kemudian buka command prompt yang kedua untuk menjalankan AplikasiClient. Berikut adalah cara mengeksekusinya.

C:\>java AplikasiServer 100
C:\>java AplikasiClient 127.0.0.1 100



Ups……. Saya juga sudah membuatkan file batch-nya, untuk memudahkan pengeksekusian. Sehingga kita cukup klik 2x pada file batch-nya. Berikut adalah kode programnya

Ini disimpan dengan nama AplikasiServer.bat, dan jangan lupa save as type-nya harus all files

@echo off
title Copyright RDP Laboratories ~~~ Server ~~~
cls

rem Petunjuk Penggunaan

rem Masukkan PORT
rem Contoh : java AplikasiServer 1080

java AplikasiServer 10

pause



Ini disimpan dengan nama AplikasiClient.bat, dan janga lupa save as type-nya harus all files.

@echo off
title Copyright RDP Laboratories ~~~ Client ~~~
cls

rem Petunjuk Penggunaan

rem Masukkan IP Address & PORT

rem Contoh : java AplikasiClient 127.0.0.1 20

rem Sesuaikan dengan PORT yang di Pakai Oleh AplikasiServer

rem Jika AplikasiServer Menggunakan PORT 10

rem Maka akan seperti ini : java AplikasiClient 127.0.0.1 10


java AplikasiClient 127.0.0.1 10

pause



Kini, anda bisa melakukan chating dengan diri sendiri. Aplikasi ini masih berjalan di console, nanti akan saya kasih yang berbasis GUI. Doakan saja, semoga masih ada otak di kepala ini untuk berfikir.
Sekian dari saya, semoga dapat bermanfaat dan kita dapat mengambil hikmah dari peristiwa ini(jadi ngelantur). Jika ada saran & kritik dapat dilayangkan via angin yang berhembus. Jika ada yang ingin memberi saya uang, dapat dilayangkan via khantonk ataw domvet saya.


Ketika 0 Telah Menjadi 1,
Ketika false Telah Menjadi true,
Ketika off Telah Menjadi on.


Thank’s to :

- My God Allah SWT, Kasih SayangMu Takkan Pernah Dapat Kuhitung
- My PC, Maafkan Aku Yang Telah Memaksamu Untuk Beroperasi Walau Dalam Keadaan Sekarat

"Tolong dikoreksi jika ada kesalahan......"
 
Offline
08-07-2010 08:21 AM RE: Tips n Trick Java (Aplikasi Client Se...
User Avatar

ayipsmile
Murid Akademi I


Posts: 1
Joined: 08.07.10
Location: Purwokerto
Age: 31
Mau tanya donk. Aplikasi di atas aku jalanin di IDE Netbeans 6.7.1. Saya sudah buat package rdp.laboratories dan meletakkan class AplikasiServer di dalamnya. Ketika saya jalankan hasilnya :

Masukkan Port Yang Akan Digunakan
Contoh : 8080

Begitu terus. Tidak ada perintah untuk memasukkan nomor PORT. Berbeda halnya jika dijalankan melalui command prompt.
C:\>java AplikasiServer 100

Memang berhasil masuk.

Jadi gimana solusinya supaya dapat dijalankan di Netbeans?
 
Offline
Jump to Forum:
Forum powered by fusionBoard
Share this Thread
URL:
BBcode:
HTML:
Similar Threads
Thread Forum Replies Last Post
Tips & Trick Memantain BlackBerry Share Pengetahuan Umum 3 04-08-2019 23:48
ITOP aplikasi server gratis buat dep IT Open Source OS 1 04-04-2014 01:03
eBook Java Bahasa Indonesia – Aplikasi POS Berarsitektur Three Tier Menggunakan Swing, Hibernate, da E-Book 12 03-02-2014 22:21
ASK jadi admin server linux Networking 5 08-03-2013 21:33
[help] upload file to different server PHP 6 30-01-2013 21:13
Copyright © 2007-2016