Namun program di bawah ini adalah web server sederhana. yaitu bagaimana kita bisa mengakses file HTML yang berada di komputer kita melalui localhost.
namun sebelum itu buatlah file HTML terlebih dahulu. disini saya meletakkan file HTML saya di "D:". ini sangat penting karna akan mempengaruhi source code yang kita buat.
berikut contoh file HTML sederhana di notepad:
<HTML>
<HEAD> <TITLE> Belajar WEB Server Java</TITLE></HEAD>
<BODY>
<H1>Web Server </H1>
Belajar membuat web server menggunakan java
</BODY>
</HTML>
sorry y kalau file HTMLnya sederhana banget.. cuma buat ngetes ajah koq.... setelah itu simpan file in "D:"
nah yang ini adalah source codenya:
package basicserver;
/**
*
* @author Nouvhy
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.StringTokenizer;
public class BasicServer
{
public static void main(String[] args)
{
final int SERVER_PORT = 2006; // port yang digunakan
ServerSocket serverSocket = null;
String servPath = "D:/"; // tempat kita menaruh file HTML, di atas tadi saya menaruh filenya di D.
try
{
serverSocket = new ServerSocket(SERVER_PORT);// membuka server socket
System.out.println("Connecting.....");
}
catch (IOException e)
{
System.err.println("Could not listen on port: " + SERVER_PORT);
System.exit(1);
}
while (true)
{
Socket clientSocket = null;
try
{
clientSocket = serverSocket.accept(); //membuka client socket
}
catch (IOException e)
{
System.err.println("Accept failed.");
System.exit(1);
}
PrintWriter out=null;
BufferedReader in=null;// membaca request
System.out.println("IP Client: "+clientSocket.getInetAddress().getHostAddress());
try
{
out = new PrintWriter(clientSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
out.flush();
String s;
while (!(s = in.readLine()).isEmpty())
{
if(s.length() > 0)
{
System.out.println(s);
StringTokenizer tokens = new StringTokenizer(s);
if(tokens.nextToken().equals("GET"))
{
String fileRequested = tokens.nextToken().replace("/", "");
fileRequested = RemoveQString(fileRequested);
if(fileRequested.equals("")) // jika file direquest
{
fileRequested = "index.html"; //file yang direquest
}
File reqFile = new File(servPath + fileRequested);
System.out.println("File " + fileRequested + " was requested.");// menapilkan tulisan file request
if(reqFile.exists())
{
try
{
FileReader fText = new FileReader(reqFile);//membaca file
BufferedReader bfFile = new BufferedReader(fText);
String line;
while ((line = bfFile.readLine()) != null)
{
out.write(line);// menampilkan index.html
}
out.flush();
bfFile.close();
System.out.println("The file was served.");
}
catch(IOException e)
{
out.write("The file you have requested (" + fileRequested + ") could not be served: " + e.getMessage());
out.flush();
System.out.println("An IO exception occured.");
}
}
else
{
out.write("The file you have requested (" + fileRequested + ") was not found.");
out.flush();
System.out.println("File not found.");
}
}
}
}
out.close();
in.close();
clientSocket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
private static String RemoveQString(String str)//untuk mengambil request sebelum tanda tanya
{
int qPos = str.indexOf("?");
if(qPos >= 0)
{
str = str.substring(0, qPos);
}
return str;
}
}
jalankan program netbean kita, setelah run dan muncul conection.....
buka brouser dan ketikan "localhost:(port yang kita gunakan)" contoh localhost:2006
jika komputer teman kita ingin mengakses file html kita, caranya ketikan IP kita : port kita contoh 192.168.1.4:2006
maka akan muncul hasil sebagai berikut:
ok... sekian cara membuat web server sederhana menggunakan java.
Tidak ada komentar:
Posting Komentar