Salve a tutti! Come da titolo ho implementato un mini server HTTP, che ad ogni richiesta TCP in localhost sulla porta 6789 restituisce una semplice pagina HTML ! Appena lanciato il server, e facendo una richiesta da browser (Chrome) la prima volta è andato tutto bene e la scritta "Pagina di esempio" contenuta nell'HTML è stata ricevuta correttamente...POI dalla seconda volta in poi non ha piu funzionato ! Se faccio richieste su "localhost:6789" il browser rimane a schermata bianca senza ritornare nessun errore e lanciando dopo un po un messaggio dicendo che la pagina non risponde!
Vi allego il codice del server
import java.io.*;
import java.net.*;
public class HTTPServer {
public static void main(String[] args) throws Exception {
// creazione della socket
int port = 6789;
ServerSocket serverSocket = new ServerSocket(port);
System.err.println("Sever web avviato sulla porta: " + port);
while (true) {
Socket clientSocket = serverSocket.accept();
System.err.println("Nuova richiesta\n");
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); // Ricevo Stringhe
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream())); // E invio stringhe
String s;
while ((s = in.readLine()) != null) { // Non -1 perche non sto leggendo BYTE ma STRINGHE
System.out.println(s); // Questo meccanismo è valido in caso di connessioni NON persistenti
if (s.isEmpty()) {
break;
}
}
out.write("HTTP/1.0 200 OK\r\n");
out.write("Date: Fri, 31 Dec 1999 23:59:59 GMT\r\n");
out.write("Server: Apache/0.8.4\r\n");
out.write("Content-Type: text/html\r\n");
out.write("Content-Length: 49\r\n");
out.write("Expires: Sat, 01 Jan 2000 00:59:59 GMT\r\n");
out.write("Last-modified: Fri, 31 Dic 1999 23:59:59 GMT\r\n");
out.write("\r\n");
out.write("<TITLE>Example</TITLE>");
out.write("<P>Pagina di esempio</P>");
out.write("\r\n");
System.err.println("Richiesta terminata\n\n");
out.flush();
out.close();
in.close();
clientSocket.close();
}
}
}
Sinceramente non so cosa possa essere, e sono quasi sicuro che il codice sia giusto, anche perchè è stato visto da un prof della mia università! Unico dubbio che mi rimane è che, all'avvio non mi è stato chiesto nessun permesso di accesso alla rete dell'applicazione, come invece è successo nei pc dei miei compagni! Grazie.