1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

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();       
        }
    }
}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java sockets ou faça a sua própria pergunta.