gpt4 book ai didi

java - 简单的java web服务器但没有输出

转载 作者:行者123 更新时间:2023-12-01 10:03:11 24 4
gpt4 key购买 nike

我正在编写一个简单的 Java Web 服务器来帮助我理解该机制。但似乎不起作用。它将打印请求,但我无法在浏览器或 telnet 客户端上得到任何响应。您能帮忙解释一下为什么没有回复吗?

public Server() throws IOException {
this.ss = new ServerSocket(this.PORT);
}

@Override
public void run() {

while(true) {
try {
Socket cli = this.ss.accept();
new Thread(new Hanlder(cli)).start();
} catch (IOException ex) {
ex.printStackTrace();
}

}
}

class Hanlder implements Runnable {

private Socket client = null;

public Hanlder(Socket cli) {
client = cli;
}

@Override
public void run() {
BufferedWriter bwriter;
try {

InputStreamReader input = new InputStreamReader(this.client.getInputStream());
BufferedReader buf = new BufferedReader(input);
String line = null;
while( (line = buf.readLine()) != null ) {
System.out.println(line);
}

bwriter = new BufferedWriter( new OutputStreamWriter(client.getOutputStream()));
bwriter.write("HTTP/1.1 200 OK \n"
+ "Hello, World");
bwriter.flush();

this.client.close();

} catch (IOException ex) {
ex.printStackTrace();
}

}
}

最佳答案

您还需要在 header 中提供 Content-TypeContent-Length 参数。

同样在 HTTP 中,您应该以 \r\n 终止行,并以 \r\n\r\n 终止 header 。

例如:

bwriter.write("HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\nContent-Length: 3\r\n\r\nABC");

关于java - 简单的java web服务器但没有输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36660307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com