import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
/ **
* Created by yar 09/09/2009
* /
public class HttpServer {
public static void main (String [] args) throws Throwable {
ServerSocket ss = new ServerSocket (8080);
while (true) {
Socket s = ss.accept ();
System.err.println ("Client accepted");
new Thread (new SocketProcessor (s)). start ();
}
}
private static class SocketProcessor implements Runnable {
private socket
private InputStream is;
private OutputStream os;
private SocketProcessor (Socket s) throws Throwable {
this.s = s;
this.is = s.getInputStream ();
this.os = s.getOutputStream ();
}
public void run () {
try {
readInputHeaders ();
writeResponse ("<html> <body> <h1> Hello from Habrahabr </ h1> </ body> </ html>");
} catch (Throwable t) {
/ * do nothing * /
} finally {
try {
s.close ();
} catch (Throwable t) {
/ * do nothing * /
}
}
System.err.println ("Client processing finished");
}
private void writeResponse (String s) throws Throwable {
String response = "HTTP / 1.1 200 OK \ r \ n" +
"Server: YarServer / 2009-09-09 \ r \ n" +
"Content-Type: text / html \ r \ n" +
"Content-Length:" + s.length () + "\ r \ n" +
"Connection: close \ r \ n \ r \ n";
String result = response + s;
os.write (result.getBytes ());
os.flush ();
}
private void readInputHeaders () throws Throwable {
BufferedReader br = new BufferedReader (new InputStreamReader (is));
while (true) {
String s = br.readLine ();
if (s == null || s.trim (). length () == 0) {
break;
}
}
}
}
}
Source: https://habr.com/ru/post/69136/
All Articles