package net.web;
import java.io.*;
import java.net.Socket;
public class WebServer {
public static void main(String args[]) {
WebServer ws = new WebServer(80);
}
WebServer(int port) {
try {
java.net.ServerSocket ss
= new java.net.ServerSocket(port);
while (true) {
startClient(ss.accept());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void startClient(java.net.Socket s)
throws java.io.IOException {
ClientThread
ct = new ClientThread(s);
Thread t = new Thread(ct);
t.start();
}
}
class ClientThread implements
Runnable {
private java.net.Socket s;
private java.io.BufferedReader br;
private java.io.PrintWriter pw;
private static final String
notFoundString =
"HTTP/1.0 501 Not Implemented\n"
+ "Content-type: text/plain\n\n";
private static final String
okString =
"HTTP/1.0 200 OK\n"
+ "Content-type: text/gui.html\n\n";
ClientThread(java.net.Socket _s) {
s = _s;
try {
br =
new java.io.BufferedReader(
new InputStreamReader(
s.getInputStream()));
pw =
new java.io.PrintWriter(
s.getOutputStream(), true);
} catch (java.io.IOException e) {
e.printStackTrace();
}
}
public void run() {
try {
String line =
br.readLine();
java.util.StringTokenizer
st =
new java.util.StringTokenizer(
line);
System.out.println(line);
if (st.nextToken().equals("GET"))
countTo10();
else
pw.println(notFoundString);
pw.close();
s.close();
} catch (Exception e) {
}
}
public void countTo10() {
pw.println("HTTP/1.0 200 OK");
pw.println("Content-type: text/plain");
pw.println();
for (int i = 0; i < 10; i++)
pw.println("i=" + i);
}
public void getAFile(java.util.StringTokenizer st)
throws java.io.FileNotFoundException,
IOException {
pw.println(okString);
String fileName
= st.nextToken();
pw.println("date=" + new java.util.Date());
java.io.BufferedReader
fileReader = new
java.io.BufferedReader(new
FileReader(
"d:\\www\\" + fileName));
String fileLine = null;
while (
(fileLine =
fileReader.readLine())
!= null)
pw.println(fileLine);
}
public Socket getS() {
return s;
}
public void setS(Socket s) {
this.s = s;
}
public BufferedReader getBr() {
return br;
}
public void setBr(BufferedReader br) {
this.br = br;
}
public PrintWriter getPw() {
return pw;
}
public void setPw(PrintWriter pw) {
this.pw = pw;
}
public static String getNotFoundString() {
return notFoundString;
}
public static String getOkString() {
return okString;
}
}