invalid stream header: 47455420 - Java Input Stream

我是研究僧i 提交于 2020-02-07 21:44:46

问题


Hello World!

Currently I'm writing a simple Client/Server application which uses sockets to do the communitcation. My Client and my Server application are working fine with each other but if I try to query my Server application with a real web-browser (like Mozilla Firefox), then it comes to an exception.

I think that my streams are not compatible with Mozilla Firefox. This little code line always leads to an IOException with the error message "invalid stream header: 47455420".

From Firefox I try to connect via: http://localhost:7777/some-webpage.html

This is my code:

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());
}

Does anybody know why this happens? Help is seen with pleasure.

Greetings

Benny


回答1:


The ObjectInputStream expects a binary format. You can't use a web browser to produce the binary format that it reads. The web browser will talk HTTP protocol, and your server is not expecting that at all.

You probably need to learn about web services. You might find the JAX-RS support in CXF convenient for what you seem to want to do.

To just drop in to HTTP, the minimal thing to do is implement a servlet: google would be your friend in learning about them.



来源:https://stackoverflow.com/questions/4241554/invalid-stream-header-47455420-java-input-stream

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!