salam satu jiwa

Sabtu, 28 November 2009

Socket Programming Dengan Java

Socket Programming Dengan Java

Layanan seperti Web, Chatting, FTP sebenarnya menggunakan socket untuk menyampikan data/informasi dari server ke client atau dari client ke client yang lain melewati server. Apabila Anda seorang programmer yang akan membuat program penyaluran informasi dari client ke server atau sebaliknya, maka Anda harus tentukan dulu dengan metode apa informasi akan disalurkan. Apa menggunakan protokol yang sudah ada (Http, Ftp, Irc, …) atau menggunakan protokol buatan Anda sendiri.

Jika data/informasi yang tersedia terdapat dalam layanan dengan protokol yang sudah ada, maka Anda hanya perlu membuat aplikasi client. Dan hanya mencari tau bagaimana cara server melayani client. Beda jika Anda ingin menggunakan protokol buatan sendiri. Ya iyalah, baik server maupun client harus dibuat kedua-duanya.

Contoh Source code dg pemrograman java.

Server.java

import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
public static void main(String[] args) throws IOException {
//Buat server yang akan mendengarkan pada port 1234
ServerSocket server=new ServerSocket(1234);

//ulang terus...
while(true)
{
//terima setiap sambungan yang masuk
Socket conn=server.accept();
System.out.println("Sambungan dari : " + conn.getInetAddress().getHostName());

//kirim pesan ke client
OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());
out.write("Hallo.");
out.flush();

//putuskan sambungan yang dibuat client :)
conn.close();
}
}
}

Client.java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;

public class Client {
public static void main(String[] args) throws IOException {
try {
//menghubungi mesin dengan alamat 127.0.0.1 pada port 1234
Socket cl=new Socket("127.0.0.1", 1234);

//menerima pesan yang diberikan oleh server
InputStream in=cl.getInputStream();
BufferedReader buff=new BufferedReader(new InputStreamReader(in));
String s=buff.readLine();

//cetak pesan yang diterima kelayar
System.out.println(s);

} catch (Exception ex) { //permintaan sambungan ke server gagal
System.out.println("Tidak tersambung.\nKasihan the loe... :p");
}
}
}

Sekarang compile dan jalankan…

$ javac Server.java
$ java Server

$ javac Client.java
$ java Client

java-socket

Sedikit gambaran tentang pemrograman socket java.

3 komentar:

  1. Boleh gak buat aplikasi aed downloader dengan sokcet/tcp bkn Http.Makasih gue tunggu!

    BalasHapus
  2. mantap, bs dikembangkan ke berbagai macam keperluan

    BalasHapus
  3. permisi gan, saya ada sedikit tulisan mengenai implementasi websocket di java gan, kalau berkenan silahkan kalau mau di improvisasi gan, semoga bermanfaat http://datacomlink.blogspot.co.id/2015/11/implementasi-server-websocket-rfc-6455.html terima kasih gan sebelumnya atas perhatiannya, semangat open source :D

    BalasHapus