2010-11-22 24 views
0

Hello World!無効なストリームヘッダー:47455420 - Java入力ストリーム

現在、私はコミュニケーションを行うためにソケットを使用する単純なクライアント/サーバーアプリケーションを作成しています。 My ClientとMy Serverアプリケーションは互いにうまく動作していますが、実際のWebブラウザ(Mozilla Firefoxなど)でサーバーアプリケーションを照会しようとすると、例外が発生します。

私のストリームはMozilla Firefoxと互換性がないと思います。この小さなコード行は、常に "無効なストリームヘッダー:47455420"というエラーメッセージでIOExceptionにつながります。

の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

ObjectInputStreamのバイナリ形式を期待。 Webブラウザを使用して、読み取るバイナリ形式を生成することはできません。 WebブラウザはHTTPプロトコルを話し、あなたのサーバはそれをまったく期待していません。

おそらくWebサービスについて学ぶ必要があります。 CXFのJAX-RSサポートが、あなたがしたいと思っているように便利かもしれません。

ちょうどHTTPにドロップするには、サーブレットを実装することが最低限必要です。つまり、googleはそれらについて学ぶあなたの友人になるでしょう。

+0

速い返信ありがとうございます。簡単にHTTPプロトコルをインポートするライブラリがありますか?または、入力ストリーム形式を変更するだけでそれを達成できますか? –

+0

ObjectInputStreamではなく標準のInputStreamを使用します。これは、Webブラウザーに完全に適合し、BufferedReader内のInputStreamReaderで読み取ることができます。私はHTTP/1.1の基本も実装しましたので、今すぐ動作します。 :-) アドバイスありがとうございます。 –

関連する問題