Senin, 17 Juni 2013

Web Server - Java

JavaWebServer.java

package javawebserver;
public class JavaWebServer {

    public static void main(String[] args) {
        // TODO code application logic here
        WebServer ws = new WebServer();
        ws.start();
    }
}

WebServer.java

package javawebserver;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;


public class WebServer {

    protected void start() {
    ServerSocket s;

    System.out.println("webserver berada di 6060");
    System.out.println("(tekan ctrl+c)");
    
    //inisialisasi server
    try {
      s = new ServerSocket(6060); // portnya diganti tidak masalah
    } catch (Exception e) {
      System.out.println("Error: " + e);
      return;
    }

    System.out.println("menunggu sambungan");
    for (;;) {
      try {
          
        //menerima koneksi
        Socket remote = s.accept();
        
        //mengirim pesan
        System.out.println("menghubungkan, mengirim data.");
        BufferedReader in = new BufferedReader(new InputStreamReader(
            remote.getInputStream()));
        PrintStream out = new PrintStream(remote.getOutputStream());

        //membaca permintaan pengguna di kolom url
        String str = ".";
        while (!str.equals("")){
          str = in.readLine();
          System.out.println(str);
        }
        
        String filepath = "C:\\Users\\Banitama\\Dekstop\\MyWebServerJava\\";
        FileInputStream fin = null;
        boolean fileExists = true;
        if(filepath.endsWith("\\")) filepath+="index.html";
        
        //isi dari permintaan pengguna
        out.println("HTTP/1.0 200 OK");
        out.println("Content-Type: text/html");
        out.println("Server: Bot");
        out.println("");
        
        try{
            fin = new FileInputStream(filepath);
        } catch (FileNotFoundException e){
            fileExists = false;
        }
        
        if(fileExists){
            byte[] buffer=new byte[1024];
            int n;
            while ((n=fin.read(buffer))!=-1)
                out.write(buffer, 0, n);
        }
        else
        {
            out.println("<h1>HTTP/1.0 404 Not Found</h1>\r\n");
        }
        
        
        out.flush();
        remote.close();
      } catch (Exception e) {
        System.out.println("Error: " + e);
      }
    }
  }
}

Tidak ada komentar:

Posting Komentar