Связь между браузером и сервером написана на Java - PullRequest
1 голос
/ 08 августа 2011

Я сделал простой сервер, написанный на Java, который просто отправляет HTML-код HTML-файла любому клиенту, который подключается к нему.Он использует порт 8008. Проблема в том, что когда я использую chrome, чтобы получить этот HTML через http://localhost:8008,, он не работает.Что я должен сделать, чтобы эти двое правильно общались, а браузер отображал HTML-страницу.Я использую ServerSockets.Кроме того, как веб-браузер может отправлять информацию или запросы на сервер?Любые способы использования URL?Спасибо!

    ServerSocket serverSocket = null;
    try {
        serverSocket = new ServerSocket(8008);
    } catch (IOException e) {
        System.err.println("Could not listen on port: 8008.");
        System.exit(1);
    }

    Socket clientSocket = null;;
    try {
        clientSocket = serverSocket.accept();   //This is the browser requesting for connection
    } catch (IOException e) {
        System.err.println("Accept failed.");
        System.exit(1);
    }

    PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
    BufferedReader in = new BufferedReader( new InputStreamReader( clientSocket.getInputStream() ) );

    out.println("Some HTML Code");  //The browser should be able to render the HTML Code sent

    out.close();
    in.close();
    clientSocket.close();
    serverSocket.close();

Ответы [ 3 ]

2 голосов
/ 08 августа 2011
The server you've developed is **not a web server**, right? The server you've developed **cannot handle HTTP requests**(used Sockets), but unfortunately the 

браузеры будут использовать протоколы (скажем, HTTP) для доступа к файлам по сети

.

Вы ожидаете результата через неправильный процесс. Я бы сказал, разработайте клиентскую Java-программу, которая должна подключаться к порту, который вы указали при инициализации ServerSocket.

0 голосов
/ 10 августа 2011

HTTP - это не просто HTML, есть некоторые заголовки, vg

 HTTP/1.0 200 

, которые должны быть переданы сервером.

Проверка:

a) чтосервер фактически получает запрос (регистрирует, что сервер работает и отвечает)

b) что сообщение, которое вы отвечаете, является допустимым HTTP-сообщением, которое принимает браузер (HTTP является протоколом соединения, а HTMLэто протокол содержимого, вы можете отправлять как HTML, так и GIF изображения через HTTP).

Просмотрите в Google формат сообщений HTTP

0 голосов
/ 08 августа 2011

попробуйте использовать TCPMON для проверки запроса и ответа, это поможет вам сузить поиск неисправностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...