Witam
Chciałem przetestować w działaniu klasę HttpServer. Znalazłem taki kod w internecie:
public class Main {
public static void main(String[] args) throws IOException {
InetAddress localHost = InetAddress.getLocalHost();
int portNum = 8000;
InetSocketAddress serverAddress = new InetSocketAddress(localHost.getHostAddress(), portNum);
System.out.println("Server http:" + serverAddress.getAddress() + "/" + serverAddress.getPort());
HttpServer server = HttpServer.create(serverAddress, 2);
server.createContext("/test", new MyHandler());
server.setExecutor(null); // creates a default executor
server.start();
}
}
class MyHandler implements HttpHandler {
@Override
public void handle(HttpExchange t) throws IOException {
String response = "Welcome!";
t.sendResponseHeaders(200, response.length());
OutputStream os = t.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
Jeżeli wpisuję w przeglądarkę ** http://<ip servera="servera">:8000/test** na komputerze, na którym uruchomiony został server to otrzymuje odpowiedź serwera. Natomiast jeżeli wpisuję ten adres na innym komputerze należącym do tej samej sieci domowej otrzymuję komunikat <ip_serwera> odrzucił połączenie. Jeżeli wpisuję w przeglądarkę na telefonie to otrzymuję: <ip_serwera> potrzebował zbyt wiele czasu na odpowiedź.. W czym leży problem? Próbowałem z wyłączonym antywirusem i zaporą na komuterze z uruchomionym serwerem i nie pomaga.