Kamis, 07 Maret 2013

Lapres Modul 1 Kelompok B13(part 2)

          Berikut ini merupakan contoh kodingan interaksi antara client dan server. Jika client memasukan tanggal lahirnya, maka server akan membalasnya dengan umurnya. Umurnya nanti akan muncul di layar client. Bahasa yang digunakan adalah bahasa pemrograman java.



Server
package socket;

import java.util.*;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Server {   
  
    public static void main(String[] args) throws IOException, IOException {
     

        int port=5678;   -----> port yang akan digunakan
        ServerSocket server = new ServerSocket(port);      ------> membuat server dengan port yang tadi
      
        while(true){
            try {
            Calendar cal=Calendar.getInstance();  ------> membuat variabel tanggal dengan tanggal diambil dari sistem
            int year=cal.get(Calendar.YEAR);  ---------> mengambil tahun
            int month=cal.get(Calendar.MONTH) + 1; ----------> mengambil bulan
            int day=cal.get(Calendar.DATE); ---------------> mengambil hari
            System.out.println("tanggal : "+day+" "+month+" "+" "+year+"");

                System.out.println("Tunggu pesan .....");
                Socket socket = server.accept();   ------------> menunggu response dari client
              
                ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());   ----------> membuat variabel yang digunakan untuk menangkap kiriman dari client
                String message=(String) ois.readObject();   --------> kiriman dari client ditaruh di variabel message
              // kiriman tadi dipotong berdasarkan hari , bulan, da tahun

                String hari = message.substring(0,2);
                String bulan = message.substring(2,4);
                String tahun = message.substring(4, 8);
                

                // menghitung umur client
                int bulanInt=0;
                int tahunInt=0;
                if(bulan.substring(0,1)=="0")
                {
                    bulanInt = Integer.parseInt(bulan.substring(1,2));
                }
                      
                else
                {
                    bulanInt = Integer.parseInt(bulan);
                }
              
                tahunInt = Integer.parseInt(tahun);
                if(month > bulanInt)
                {
                    tahunInt-=1;
                }
              
                int nilaiUmur = year - tahunInt -1;
                String umur = Integer.toString(nilaiUmur);

                System.out.println("Umur: "+umur);
              
                ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());    -------> membuat variabel yang akan digunakan utuk mengirim data dari server ke client
                oos.writeObject(umur);   -------> data yang akan dikirim dipaket
              
                ois.close();
                oos.close();
                socket.close();
             
                System.out.println("Tunggu pesan dari client... ");
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
      
    }
}

 Client
package socket;

import java.util.*;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Client {
 

    public static void main(String[] args) throws IOException {
        try {

// menangkap input tanggal dari client
            Scanner input=new Scanner(System.in);
            System.out.print("Tanggal : ");
            int tanggalLahir = input.nextInt();
            System.out.print("Bulan   : ");
            int bulanLahir = input.nextInt();
            System.out.print("Tahun   : ");
            int tahunLahir = input.nextInt();
           
            String tanggal = "";
            if(tanggalLahir > 9)
            {
                tanggal = Integer.toString(tanggalLahir);
            }
            else
            {
                tanggal =  "0" + Integer.toString(tanggalLahir);
            }
            if(bulanLahir > 9)
            {
                tanggal = tanggal + Integer.toString(bulanLahir);
            }
            else
            {
                tanggal = tanggal + "0" + Integer.toString(bulanLahir);
            }
            tanggal = tanggal + Integer.toString(tahunLahir);
 

        InetAddress host = InetAddress.getLocalHost();   -------> membuat host beserta alamatnya
        Socket socket = new Socket(host.getHostName(), 5678);   -----------> membuat socket dan portnya sudah ditentukan
       
        ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());  -------> membuat variabel yang akan digunakan untuk mengirim paket ke server
       
        oos.writeObject(tanggal);  --------> data kiriman dipaket lalu dikirim ke server
       
        ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());  ------> membuat variabel yang akan menangkap kiriman dari server
        String message = (String)ois.readObject();   --------> variabel menerima kiriman paket dari server
       
        System.out.println("umur: "+message);   -------> pesan dari server ditampilkan di layar client
       
        oos.close();
        ois.close();
        socket.close();
       
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
        } catch (UnknownHostException ex) {
            Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
        }
   
    }
}


Tidak ada komentar:

Posting Komentar