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