S
Sergio Alvarez
Hola a todos, espero recibir ayuda... muchas gracias..
Tengo que hacer este problema a partir de un codigo dado, que no se si esta
completo (supngo que no), no si esta correcto (supngo que tampoco)
Pongo el Problema y el codigo, espero que me ayudeis pronto por favor.. lo
necesito urgentemene
--------------------------------
PROBLEMA:
Se trata de construir un Servidor Web muy básico, utilizando sockets TCP de
java. El servidor web estará funcionando siempre, no se desconectará nunca.
El puerto a
utilizar por el servidor web es el 80.
El cliente de nuestro servidor web será un navegador web, no es necesario
implementar ningún cliente.
La interacción entre un navegador web y el servidor web es la siguiente:
.. El navegador web se conecta al servidor web.
.. El navegador envía su solicitud en una sola línea en la forma:
GET /fichero_solicitado HTTP 1.0
.. La solicitud realizada por el navegador web finaliza por un carácter de
retorno de carro ('\r') y un carácter de línea nueva ('\n'), es decir
finalizada
con el fin de línea.
.. El servidor web recibe la solicitud, envía el fichero solicitado al
navegador
web y finaliza la conexión.
.. El navegador web recibe el fichero enviado por el servidor web, lo muestra
y
finaliza la conexión.
El servidor web utilizará un flujo de texto para enviar ficheros con
extensión
..htm o .html y un flujo binario para el resto de tipos de fichero. El envío
de un fichero
por el flujo de texto se puede hacer carácter a carácter, por bloques de
caracteres o por
líneas. El envío de un fichero por el flujo binario se puede hacer byte a
byte o por
bloques de bytes.
NECESITO:
El Código fuente del servidor web.
-------------------------------------
El codigo del cual partir, es:
GET /index.html 80 HTTP 1.0
Server Socket sescucha = new ServerSocket(Puerto);
while true{
Socket speticion = sescucha.accept();
BufferedReader Entrada_texto =
new BufferedReader(
new InputsStreamReader(
new DataInputStream(speticion.getInputStream() )))
String peticion = Entrada_texto.readline();
System.out.println("recibido"+peticion);
import java.util.*
String Tokenizer Tokens = new StringToKenizer(peticion);
String nomfich = Tokens.nextTocken();
nomfich = Tockens.nextTocken();
nomfich = nomfich.substrings(1);
if(nomfich ends with (".html")){
char[]buffer = new char [1024];
File Reader fich = new FileReader(nomfich);
int leidos=0;
while (leidos!=-1){
leidos = fich.read(buffer);
if (leidos!=-1)
salidatexto.write(buffer,leidos)
Printwriter salidatexto = new Printwriter
}
salidatexto.flush(); //forzar al buffer a vaciarse
fich.close();
}
else{
byte[]buffer = new buffer [1024];
FileInputStream fich = new FileInputStream(nomfich);
DataOutputStream salida = new DataOutputSream(speticion .getoutputStream);
int leidos=0;
while (leidos!=-1){
leidos = fich.read(buffer);
if (leidos!=-1)
salidatexto.write(buffer,leidos)
Printwriter salidatexto = new Printwriter
}
salidatexto.flush(); //forzar al buffer a vaciarse
fich.close();
}
Tengo que hacer este problema a partir de un codigo dado, que no se si esta
completo (supngo que no), no si esta correcto (supngo que tampoco)
Pongo el Problema y el codigo, espero que me ayudeis pronto por favor.. lo
necesito urgentemene
--------------------------------
PROBLEMA:
Se trata de construir un Servidor Web muy básico, utilizando sockets TCP de
java. El servidor web estará funcionando siempre, no se desconectará nunca.
El puerto a
utilizar por el servidor web es el 80.
El cliente de nuestro servidor web será un navegador web, no es necesario
implementar ningún cliente.
La interacción entre un navegador web y el servidor web es la siguiente:
.. El navegador web se conecta al servidor web.
.. El navegador envía su solicitud en una sola línea en la forma:
GET /fichero_solicitado HTTP 1.0
.. La solicitud realizada por el navegador web finaliza por un carácter de
retorno de carro ('\r') y un carácter de línea nueva ('\n'), es decir
finalizada
con el fin de línea.
.. El servidor web recibe la solicitud, envía el fichero solicitado al
navegador
web y finaliza la conexión.
.. El navegador web recibe el fichero enviado por el servidor web, lo muestra
y
finaliza la conexión.
El servidor web utilizará un flujo de texto para enviar ficheros con
extensión
..htm o .html y un flujo binario para el resto de tipos de fichero. El envío
de un fichero
por el flujo de texto se puede hacer carácter a carácter, por bloques de
caracteres o por
líneas. El envío de un fichero por el flujo binario se puede hacer byte a
byte o por
bloques de bytes.
NECESITO:
El Código fuente del servidor web.
-------------------------------------
El codigo del cual partir, es:
GET /index.html 80 HTTP 1.0
Server Socket sescucha = new ServerSocket(Puerto);
while true{
Socket speticion = sescucha.accept();
BufferedReader Entrada_texto =
new BufferedReader(
new InputsStreamReader(
new DataInputStream(speticion.getInputStream() )))
String peticion = Entrada_texto.readline();
System.out.println("recibido"+peticion);
import java.util.*
String Tokenizer Tokens = new StringToKenizer(peticion);
String nomfich = Tokens.nextTocken();
nomfich = Tockens.nextTocken();
nomfich = nomfich.substrings(1);
if(nomfich ends with (".html")){
char[]buffer = new char [1024];
File Reader fich = new FileReader(nomfich);
int leidos=0;
while (leidos!=-1){
leidos = fich.read(buffer);
if (leidos!=-1)
salidatexto.write(buffer,leidos)
Printwriter salidatexto = new Printwriter
}
salidatexto.flush(); //forzar al buffer a vaciarse
fich.close();
}
else{
byte[]buffer = new buffer [1024];
FileInputStream fich = new FileInputStream(nomfich);
DataOutputStream salida = new DataOutputSream(speticion .getoutputStream);
int leidos=0;
while (leidos!=-1){
leidos = fich.read(buffer);
if (leidos!=-1)
salidatexto.write(buffer,leidos)
Printwriter salidatexto = new Printwriter
}
salidatexto.flush(); //forzar al buffer a vaciarse
fich.close();
}