0

你好世界!

目前我正在编写一个简单的客户端/服务器应用程序,它使用套接字进行通信。我的客户端和我的服务器应用程序彼此运行良好,但如果我尝试使用真正的网络浏览器(如 Mozilla Firefox)查询我的服务器应用程序,则会出现异常。

我认为我的流与 Mozilla Firefox 不兼容。这个小代码行总是导致 IOException 错误消息“无效的流标头: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());
}

有人知道为什么会这样吗?很高兴看到帮助。

问候

本尼

4

1 回答 1

1

ObjectInputStream 需要二进制格式。您不能使用 Web 浏览器生成它读取的二进制格式。Web 浏览器将使用 HTTP 协议,而您的服务器根本不希望这样。

您可能需要了解 Web 服务。您可能会发现CXF中的 JAX-RS 支持 对于您似乎想要做的事情很方便。

要直接使用 HTTP,要做的最少的事情就是实现一个 servlet:google 将是您了解它们的朋友。

于 2010-11-22T01:47:39.750 回答