[ESERCIZIO] Esercizio Web Server Java Clicca QUI per vedere il messaggio nel forum |
internato |
Suvvia, raccogliamo un pò di suggerimenti sull'ultimo esercizio di Reti...forza Futurbaggio e Dagarlas, fatevi avanti e illuminateci, senza esagerare...
ho provato a fare qualcosa spulciando il testo in .pdf messo a disposizione da Eugenio Cassiano, ma credo proprio che quanto sto elaborando non possa mai funzionare....aiutate chi come me ha seri, serissimi problemi cn la programmazione.... |
Dodo |
Originally posted by internato
Suvvia, raccogliamo un pò di suggerimenti sull'ultimo esercizio di Reti...forza Futurbaggio e Dagarlas, fatevi avanti e illuminateci, senza esagerare...
ho provato a fare qualcosa spulciando il testo in .pdf messo a disposizione da Eugenio Cassiano, ma credo proprio che quanto sto elaborando non possa mai funzionare....aiutate chi come me ha seri, serissimi problemi cn la programmazione....
mi unisco a internato... illuminateci! :lode: |
futurbaggio |
A lezione non ero presente, qualcuno può specificare dove si trova il pdf?
Grazie
Roberto |
internato |
dovrebbe essere nella sezione materiale didattico o diario delle lezioni di reti.dico.unimi.it...dai futur che ce la fai... |
internato |
ho scritto qualcosa che sicuramente è pieno di errori e parti mancanti....ma se lo correggete capisco cosa manca e perchè...grazie
import java.io.* ;
import java.net.* ;
import java.util.* ;
public final class WebServer
{
public static void main(String argv[] throws Exception);
{
//Imposta il numero di porta
try{Serversocket server = new ServerSocket(6789)
}
while(true){
//accettaz connessione con la socket
HttpRequest request=new HttpRequest(6789);
Thread thread = new Thread(request);
thread.start();
}
}
}
final class HttpRequest implements Runnable
{ final static String CRLF = "\r\n";
Socket socket;
//Costruttore
public HttpRequest(Socket socket) throws Exception
{
this.socket=socket;
}
public void run()
{
try{
processRequest();
}catch(Exception e){System.out.println(e);
}
}
private void processRequest() throws Exception
{
InputStream is= socket.getInputStream();
DataOutputStream os= new DataOutputStream(socket.getOutputStream());
BufferedReader br= socket.readLine();
String requestLine= ??;
System.out.println();
System.out.println(requestLine)
String headerLine = null;
while((headerLine=br.readLine()).lenght() != 0)
{
System.out.println(headerLine)
}
os.close();
br.close();
socket.close();
}
} |
futurbaggio |
Originally posted by internato
dovrebbe essere nella sezione materiale didattico o diario delle lezioni di reti.dico.unimi.it...dai futur che ce la fai...
Grazie, l'ho trovato... ora lo leggo, anche se da un primo sguardo al tuo codice mi sembra che manchi la chiamata ad accept() di ServerSocket.
Roberto |
dagarlas |
Ha ragione futurbaggio; nel tuo codice hai scritto HttpRequest request=new HttpRequest(6789);
ma a quel punto tu stai creando un nuovo oggetto HttpRequest passandogli un'intero che nn ha senso e se guardi nel costruttore di httprequest vedi che richiede una socket come parametro, quindi dovresti scrivere:
HttpRequest request=new HttpRequest(server.accept());
ossia passi come parametro la socket ritornata da server.accept() che è quella attraverso cui avviene poi la comunicazione |
papousek |
Originally posted by dagarlas
Ha ragione futurbaggio; nel tuo codice hai scritto HttpRequest request=new HttpRequest(6789);
ma a quel punto tu stai creando un nuovo oggetto HttpRequest passandogli un'intero che nn ha senso e se guardi nel costruttore di httprequest vedi che richiede una socket come parametro, quindi dovresti scrivere:
HttpRequest request=new HttpRequest(server.accept());
ossia passi come parametro la socket ritornata da server.accept() che è quella attraverso cui avviene poi la comunicazione
ma ma ma ...che lingua parlate????
...sob...scusate ma so veramente poco di java...help!!! |
internato |
naturalmente questa è solo una delle 150000 cose sbagliate del mio codice....se no....sono proprio un figo...e mi pomperò all'inverosimile!!!! |
Barone |
Originally posted by internato
naturalmente questa è solo una delle 150000 cose sbagliate del mio codice....se no....sono proprio un figo...e mi pomperò all'inverosimile!!!!
Off-Topic: internato...che babbo.. :D |
citrus |
ciao a tutti....
sono riuscito a fare l'esercizio ma con qualche piccola "irregolarità" che non riesco a risolvere......
ad ex. il content-type e lo status mi vengono stampati a video all'inizio della pagina come fosse una normale stringa.....
non dovrebbero invece trovarsi nell'header della pagina html che visualizzo e quindi rimanere nascosti?
ho provato a dare un occhiata al documento RFC1945 in cerca di una sintassi "particolare" per inviare questi dati ma non sono riuscito a capire l'errore.......
secondo voi è richiesto nell'esercizio che cose di questo tipo funzionino correttamente?
(visto i continui rimandi all' RFC ho pensato di si....)
qualcuno ha il mio stesso problema?
è normale? |
internato |
cos'è che ti vengono stampati a video???????!!!!!!!!!!
pensavo di sapere qualcosa in più ma ora ripiombo nella cacca.... |
citrus |
Originally posted by internato
cos'è che ti vengono stampati a video???????!!!!!!!!!!
pensavo di sapere qualcosa in più ma ora ripiombo nella cacca....
praticamente sono le stringe che nel pdf di cassani si chiamano statusLine e contentTypeLine (se non sbaglio).....
a quanto ne so io queste sono header che vengono inviate al browser ma poi effettivamente a video si dovrebbe vedere solo il corpo della pagina che è contenuto in entityBody.....
io penso che sia una cosa che dobbiamo risolvere noi smazzaandoci il documento di descrizione del protocollo http...
però magari mi sbaglio.....
ma il prof cassani che voi sappiate non legge il forum?
magari può darci qualche indicazione (probabilmente sto dicendo fesserie io quindi sarebbe meglio chiarire..) |
m@cCo |
Citrus il tuo problema deriva dal fatto che non hai utilizzato le status line definite dal documento ufficiale.
Usando il formato corretto le pagine vengono visualizzate tranquillamente.
HTTP/1.0 200 OK
HTTP/1.0 404 File Not Found
Ciao |
citrus |
Originally posted by m@cCo
Citrus il tuo problema deriva dal fatto che non hai utilizzato le status line definite dal documento ufficiale.
Usando il formato corretto le pagine vengono visualizzate tranquillamente.
HTTP/1.0 200 OK
HTTP/1.0 404 File Not Found
Ciao
grande maccuz!
più tardi provo a correggere....
a la füla büla...
:D |
m@cCo |
Boh dà ancora dei problemucci...forse con estensioni non previste...cmq in generale al va bec, oh yeah! :D
Ciao |
yeah |
Esattamente quanto delle specifiche deve essere implementato?
Nella mia versione mi limito a leggere la pagina richiesta dal client, se non c'è (è arrivato "/") mando la stringa "HTTP/1.0 200 OK\r\n" e poi la pagina predefinita.
Se viene chiesta una pagina, se la pag esiste mando la stringa di OK e la pagina, altrimenti mando la stringa del 404.
Provando a collegare uno dei client degli altri esercizi ad un server qualsiasi, però, prima della pagina html ricevo un sacco di altre cose, bisonga implementare altro? |
|
|
|