用原始套接字发送HTTP响应,客户端没有收到消息
问题描述:
我试图将此消息实体主体发送给客户端。但是,这个消息似乎没有被传送。可能的原因是什么导致了这种情况?字符串消息用原始套接字发送HTTP响应,客户端没有收到消息
String message = "HTTP/1.0 404 Not Found\r\n" +
"Server: " +
"Content-type: html" +
"error\r\n" +
"<HTML>" +
"<HEAD><TITLE>404</TITLE></HEAD>" +
"<BODY>404 Not Found" +
"<br> nothing </BODY></HTML>" ;
然后,我用的PrintStream instace发送消息,其参数为message.getBytes()
没有看到浏览器的HTML邮件。
PrintStream sender = new PrintStream(this.socket.getOutputStream());
String message = // above lines
sender.write(message.getBytes())
答
假设要跨通过原始套接字发送这个数据,你需要解决如下:
- 你每头之后需要一个CRLF(回车换行)。
- 头字段中不应该包含':'字符。
-
Content-type
应该是Content-Type
,并且没有标准标头名为error
(除非这是一个自定义的发送,删除它)。 -
html
不是有效的内容类型,请尝试text/html
。
发布您的代码中,你要发送的消息 – Parth 2013-03-26 10:11:57
@codeMaker看看编辑,如果你想了解更多,请告诉我 – demire 2013-03-26 10:15:21
尝试从通过'的getOutputStream插座获得的OutputStream()'方法,然后写** **到这个流和**冲洗**这个流。 – 2013-03-26 10:17:32