JAVAでのエラーについて教えてください。JAVAのクラインとサーバーでソケットを利用しています。

エラー内容 at java.net.Socket.getInputStream(Socket.java:707)

クライントで下記のコーディング例を実行すると上記のエラーになります。
while(true){
try{
sin = s.getInputStream();
dis = new DataInputStream(sin);
der(in, "JISAutoDetect");

// データ読み込み

//----------サーバーメッセージ受信

String mes = dis.readUTF();

System.out.println(mes);


dos.flush();
dos.close();
sout.close();
dis.close();
sin.close();
s.close();
}catch(IOException e){
System.out.println("Error: cannot read message:");
System.out.println(e);
e.printStackTrace();
System.exit(1);
}
}

回答の条件
  • 1人2回まで
  • 登録:2007/01/21 16:54:51
  • 終了:2007/01/22 02:09:10

回答(1件)

id:openseed No.1

openseed回答回数51ベストアンサー獲得回数62007/01/21 20:51:09

ポイント60pt

たぶん、これだけだと、だれも答えられないと思います・・・。

 at java.net.Socket.getInputStream(Socket.java:707)

は、コネクションがクローズされているという例外です。

サーバ側がどんなサービス(http?)を提供しているのか、変数 s は、 java.net.Socket クラスなのか、while(true) の上でどんな処理が行われているのか、 der メソッドの実装がどうなっているのか、上記質問からはわかりませんが、少なくても、ループ2週目に「sin = s.getInputStream();」の行で、SocketException がthrowされます。「※ s.close(); でクローズしているため。」

※ このソースを見る限り、例外が発生しないと終了しないため、なにが目的なのかも、推測が難しいです。

sekotaro さんの目的が見えないので、コメントも難しいですが、もし、JavaのSocketプログラムが始めてであれば、一度、

http://www.hellohiro.com/socket.htm

で紹介されているサンプルを作られてみるのも良いかもしれません。


参考まで。

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません