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.

 

Pemrograman Jaringan: 4. NsLookup.java















Logika Program "NsLookup.java"

  • Pertama program akan mengimport package java.net paket ini berisi kelas yang memperbolehkan program untuk berkomunikasi melalui jaringan.
  • Kemudian buat class program yang bernama NsLookup.
  • Pada program ini jika panjang karakter string args sama dengan 0 maka akan mencetak Pemakai: Java NsLookup hostname.
  • Kemudian mendeklarasikan String host adalah 0 dan InetAddress address bernilai null.
  • Kemudian terdapat perintah try dan catch yang digunakan untuk menangkap kesalahan didalam program.
  • Pada perintah try ini akan mencoba memanggil nama host kemudian disimpan didalam variabel address, jika terdapat kesalahan maka program akan mencetak unknown host, jika program tidak terjadi kesalahan terdapat perintah perulangan for.
  • Didalam perulangan for ini terdapat perintah percabangan if, jika nilai variabel i lebih ebsar dari 0 maka program akan mecetak nilai ip dengan memanggil nilai dari variabel ip[i]
  •  Kemudian compile pada cmd sehingga akan tampil ip dari nama PC

Pemrograman Jaringan: 3. IptoName
















Logika Program "IptoName.java"

  • Mengimport package java.net paket ini berisi kelas yang memperbolehkan program untuk berkomunikasi melalui jaringan. 
  • Kemudian kita buat class bernama IPtoName.
  • Selanjutnya program ini terdapat kondisi if dimana jika panjang string host sama dengan 0 maka cetak nama pemakai dan IPtoName, lalu program akan kembali ke semula. Program akan mendeklarasikkan String host yaitu 0 dan InetAddress address bernilai null.
  • Kemudian terdapat perintah try dan catch yang digunakan untuk menangkap kesalahan didalam program.
  • Pada perintah try ini akan mencoba memanggil nama host kemudian disimpan didalam variabel address, jika terdapat kesalahan maka program akan mencetak invalid IP – malformed ip, jika program tidak terjadi kesalahan maka program akan mencetak nilai nama address host.

Pemrograman Jaringan: 1. getIP.java











Logika Program
  • Pertama program mengimport package java.net paket ini berisi kelas yang memperbolehkan program untuk berkomunikasi melalui jaringan. kemudian program membuat nama class yang bernama getip. 
  • Selanjutnya deklarasikan InetAddress host bernilai null dan deklarasi host bernilai InetAddress.getLocalHost();  didapatkan dari nilai InetAddress pada localhost.
  • Selanjutnya program akan mencetak Ip komputer dengan memanggil nilai variable host.getAddress();.

Pemrograman Jaringan: 2. getName.java


 
 
 
 


Logika Program getName digunakan untuk menentukan nama host komputer diantara 
  • Pertama program mengimport package java.net paket ini berisi kelas yang memperbolehkan program untuk berkomunikasi melalui jaringan. 
  • Kemudian program membuat nama class yang bernama getName. 
  • Selanjutnya deklarasikan InetAddress host bernilai null dan deklarasi host bernilai InetAddress.getLocalHost(); 
  • Selanjutnya program akan mencetak Nama Komputer Anda dengan memanggil nilai variable host.getHostName();.