Jumat, 04 Mei 2012

Tugas Pemrograman Jaringan-Membangun Aplikasi Client-Server

Demo D1-5
Buatlah aplikasi client server TCP sederhana. Server akan membuat soket server dan
menerima permintaan koneksi dari satu client saja. Setelah itu server akan menunggu data
yang dikirim oleh client. Jika pesan yang dikirim oleh client adalah “salam” maka server akan
membalas mengirim pesan “salam juga” . Selain dari itu, server akan mengirim pesan “Maaf,
saya tidak mengerti”.

Buat program server di bawah ini, simpan dengan nama simpleServer.java:
 
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();
}
}
}

Buat program client di bawah ini, simpan dengan nama simpleClient.java:

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

Lalu kompile program pada command promt file simpleServer.java dan jalankan, setelah itu simpleClient.java dan jalankan dapat dilihat pada gambar dibawah ini

Pertama kompile simpleServer.java maka akan keluar informasi "Aplikasi Server Hidup"
Setelah itu kompile simpleClient.java, jalankan dan masukan kata kunci maka server akan mendapat pesan salam. Secara otomatis Client akan menjawab salam juga.

Demo D1-7
Tutorial ini akan membuat kelas Staff yang berisi informasi data pegawai. Data staff akan
dikirimkan dari suatu aplikasi client ke aplikasi server lewat soket.

Buatlah kelas dibawah ini dan simpan sebagai 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("Divis: " + divisi);
System.out.println("Umur : "+ umur);
}
}

Buatlah kelas dibawah ini dan simpanlah sebagai 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("Maylano","IT",21);
os.writeObject(pegawai);
System.out.println("Client mengirim data pegawai:");
pegawai.print();
}
catch(Exception e){
e.printStackTrace();
}
}
}

Buatlah kelas server dibawah ini dan simpan sebagai 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{
//membuat 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();
}
}

Setelah itu kompile ObjectServer.java dan jalankan setelah itu kompile ObjectClient.java maka server akan menerima data pegawai setelah ObjectClient.java dijalankan.


0 komentar:

Posting Komentar