用java编写的浏览器和服务器之间的通信

用java编写的浏览器和服务器之间的通信,java,browser,Java,Browser,我制作了一个用java编写的简单服务器,它只需将html文件的html代码发送给任何连接到它的客户机。它使用端口8008。问题是,当我使用chrome获取这个html时,它似乎不起作用。我应该怎样做才能使两者正确通信,并使浏览器呈现html页面。我正在使用服务器套接字。此外,web浏览器如何向服务器发送信息或请求?有没有使用url的方法?谢谢 ServerSocket serverSocket = null; try { serverSocket = new Se

我制作了一个用java编写的简单服务器,它只需将html文件的html代码发送给任何连接到它的客户机。它使用端口8008。问题是,当我使用chrome获取这个html时,它似乎不起作用。我应该怎样做才能使两者正确通信,并使浏览器呈现html页面。我正在使用服务器套接字。此外,web浏览器如何向服务器发送信息或请求?有没有使用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();

尝试使用TCPMON检查请求和响应,这将帮助您缩小故障排除范围

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
初始化的端口

HTTP不仅仅是HTML,还包括一些头文件,v.g

 HTTP/1.0 200 
必须由服务器传输

检查:

a) 服务器是否有效地接收到请求(记录服务器正在运行和应答)

b) 您回复的消息是浏览器将接受的有效HTTP消息(HTTP是连接协议,而HTML是内容协议,您可以通过HTTP发送HTML或GIF图像)


在Google中查找HTTP消息格式

无代码?你希望我们如何帮助你?这是我首先做的。但是我们需要使用localhost:port方式。使用serversockets的java服务器是否可以以浏览器可以读取的格式输出数据?将HTML生成到HTTP服务器(如Apache HTTP服务器)的“www”目录中,以便您可以在web浏览器中获取HTML。。。