Pada posting kali ini saya akan membuat sesatu sesuai judul. Ya, web server sederhana. Dikatakan sederhana karena web server hanya sebatas mengirimkan balasan HTML kepada browser saat browser mengunjungi localhost dengan IP yang nantinya kita tentukan.
Berikut code untuk program main-nya:
import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; /** *
* @author ASUS A43B */ public class JavaWebServer { /** * @param args the command line arguments */ public static void main(String[] args) throws FileNotFoundException, IOException { // TODO code application logic here // Instansiasi kelas yang telah kita buat WebServer ws = new WebServer(); ws.start(); } }
Berikut code kelas yang akan menjalankan fungsi web server nya:
package javawebserver; // BufferedReader merupakan class bawaan JDK yg berfungsi untuk memberikan input dan output pada program import java.io.BufferedReader; // FileReader adalah class bawaan JDK yg berfungsi untuk membaca suatu file sebagai input import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; // class ServerSocket dan Socket udah dijelaskan pada post sebelumnya tentang program client-server sederhana import java.net.ServerSocket; import java.net.Socket; /** * * @author ASUS A43B */ public class WebServer { /** * WebServer constructor. */ protected void start() throws IOException { // Deklarasi class ServerSocket ServerSocket s; // Seperti yang kita tau, port digunakan untuk menghubungkan antar proses yg berbeda // Tentukan sendiri port mu, bebas String port = "5111"; System.out.println("Webserver starting up on port " + port); System.out.println("(press ctrl-c to exit)"); //inisialisasi server try { // Instansiasi class ServerSocket dengan parameter berupa port yang telah kamu tentukan di atas s = new ServerSocket(Integer.parseInt(port)); } catch (Exception e) { System.out.println("Error: " + e); return; } // Instansiasi class BufferedReader dengan menggunakan file sebagai inputan BufferedReader fScan = new BufferedReader(new FileReader("C:\\Users\\Agung\\Documents\\fileku.html")); // 9 line di bawah merupakan algoritma pembacaan string yang ada pada file // Karena nanti file akan dibaca di browser, maka file saya buat sebagai file HTML String allString = ""; String text = ""; text = fScan.readLine(); while(text != null) { allString += text; text = fScan.readLine(); } fScan.close(); System.out.println("Waiting for connection"); for (;;) { try { // Menerima koneksi Socket remote = s.accept(); // Mengirim pesan System.out.println("Connection, sending data."); BufferedReader in = new BufferedReader(new InputStreamReader( remote.getInputStream())); PrintWriter out = new PrintWriter(remote.getOutputStream()); // Membaca permintaan pengguna di kolom url String str = "."; while (!str.equals("")) str = in.readLine(); // Isi dari permintaan pengguna out.println("HTTP/1.0 200 OK"); out.println("Content-Type: text/html"); out.println("Server: Bot"); out.println(""); // Sebagai pemisah antara header HTML dengan isi file HTML out.println(allString); // mengirimkan isi file HTML yang akan dibaca browser. out.flush(); remote.close(); } catch (Exception e) { System.out.println("Error: " + e); } } } }
Sekian post dari saya kali ini, semoga bermanfaat.. Jaa Ne!!
Tidak ada komentar:
Posting Komentar