Versão atual:

Implementar aplicação servidora para receber requisições HTTP

Boa Tarde.

Estou tentando implementar uma aplicação servidora que seja capaz de receber requisições HTTP. Implementar comando GET HTTP, de maneira que possa responder a requisições por conteúdos e implementar os códigos de status 200 e 404. Os conteúdos deverão ser armazenados no formato de arquivos em disco e possuir uma pagina HTML composta por 4 imagens.

Sou iniciante na implementação de programação com socket e até agora fiz apenas o "esqueleto"

public class WebServer {

    public static void main(String[] args) {
        try {

            ServerSocket ss = new ServerSocket(9094);
            Socket s = ss.accept();

            BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
            BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

            // Cabeçalho
            out.write("HTTP/1.0 200 OK\r\n");
            out.write("Server: FakeServer/1.0\r\n");
            out.write("Content-Type: text/html\r\n");

            // Indicação de final de cabeçalho
            out.write("\r\n");

            // HTML
            out.write("<!DOCTYPE html>");
            out.write("<title>WebServer</title>");
            //out.write("<link rel='shortcut icon' href='http://findicons.com/icon/download/97152/circle_green/48/ico?id=97152'>");
            out.write("<html>");
            out.write("<body>");
            out.write("<h1>Home</h1>");
            out.write("<p>Conectado com sucesso!</p>");
            out.write("<p><a href=\"/download.html\">    1) Download</a></p>");
            out.write("<p><a href=\"/img1.jpg\">1) Imagem 1</a></p>");
            out.write("<br>");
            out.write("</body>");
            out.write("</html>");

            // Envia conteúdo
            out.flush();

            int nTrocas = 50;

            do {                
                out.write(String.valueOf(nTrocas));
                out.flush();
                Thread.sleep(1000);
            } while (--nTrocas > 0);            

            // Fecha OUT e IN
            out.close();
            in.close();

            // Encerra conexão!
            //s.close();

        } catch (Exception e) {
            e.printStackTrace();       
        }
    }
}

Versões(3):

Ver a versão formatada

Implementar aplicação servidora para receber requisições HTTP

Comentário

new question