Hello World!
目前我正在编写一个简单的客户端/服务器应用程序,它使用套接字来进行通信。我的客户端和我的服务器应用程序彼此之间的工作正常,但如果我尝试使用真正的Web浏览器(如Mozilla Firefox)查询我的服务器应用程序,那么它就会出现异常。
我认为我的流与Mozilla Firefox不兼容。这个小代码行总是会导致IOException,并显示错误消息“invalid stream header:47455420”。
从Firefox我尝试通过:http://localhost:7777/some-webpage.html
连接这是我的代码:
server = new ServerSocket(7777);
Socket socket = server.accept();
try
{
ObjectInputStream inputStream = new ObjectInputStream(new BufferedInputStream(socket.getInputStream()));
}
catch (IOException ex)
{
System.out.println("This exception happens :-(");
System.out.println(ex.getLocalizedMessage());
}
有人知道为什么会这样吗? 很高兴看到帮助。
问候
尼
答案 0 :(得分:0)
ObjectInputStream需要二进制格式。您无法使用Web浏览器生成它所读取的二进制格式。 Web浏览器将与HTTP协议通信,而您的服务器根本不期望这样。
您可能需要了解Web服务。您可能会在CXF中找到JAX-RS支持,这对您似乎想要做的事情很方便。
要深入了解HTTP,要做的最小的事情就是实现一个servlet:谷歌将是你的朋友,了解它们。