Senin, 08 Mei 2017

Pemrograman Jaringan: 5. Membangun Aplikasi Client-Server Sederhana


Listing Program "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();
            }
    }
}
Logika Program "simpleServer.java"

Program ini berfungsi sebagai server. Untuk bisa menggunakan method yang berhubungan dengan jaringan (network), maka library untuk network di-import terlebih dahulu dengan menggunakan perintah import java.net.*. Pada aplikasi ini juga terdapat perintah untuk meminta masukkan dari user, maka untuk menggunakan perintah yang berhubungan dengan input-output, maka package java.io.* di-import terlebih dahulu. Aplikasi ini di-compile terlebih dahulu. Kemudian akan menunggu pesan dan koneksi dari program client. Jika client berhasil mengirimkan pesannya, kemudian server akan mencetak pesan, lalu server akan langsung menutup koneksi dan program akan berhenti. Pesan yang akan dicetak adalah kata kunci “salam” yang disimpan pada variabel “line”, jika pesan yang dikirim sesuai, maka program pada client akan mencetak “salam juga”, tetapi jika tidak sesuai maka program pada client akan mencetak “Maaf, saya tidak mengerti”.
 
Listing Program "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);
        }
    }
    }

Logika Program "simpleClient.java"

Program ini berfungsi sebagai client. Untuk bisa menggunakan method yang berhubungan dengan jaringan (network), maka library untuk network di-import terlebih dahulu dengan menggunakan perintah import java.net.*. Pada aplikasi ini juga terdapat perintah untuk meminta masukkan dari user, maka untuk menggunakan perintah yang berhubungan dengan input-output, maka package java.io.* di-import terlebih dahulu. Aplikasi ini di-compile setelah server dan pastikan server sedang berjalan. Program ini akan meminta kata kunci yang telah ditetapkan pada program client. Kemudia akan mencetak “Dari server:” diikuti dengan “salam juga” maupun “Maaf, saya tidak mengerti”, tergantung dari masukkan dari user. Jika pesan dari server sudah dicetak, maka koneksi akan terputus dan program akan terhenti.

 

Tidak ada komentar:

Posting Komentar