• ベストアンサー

java socketエラーについて

javaでソケット接続するプログラムを作成しています。ソケット接続の以下のエラーがたまに発生するのですが、このエラーが出た際、回避方法がわかりません。どのようにしたら再度ソケット接続を行なえるのでしょうか? 以下エラー内容です。 java.net.ConnectException: failed to connect to /192.168.10.12 (port 50000): connect failed: ENOBUFS (No buffer space available) お詳しい方、よろしくお願いします!

質問者が選んだベストアンサー

  • ベストアンサー
  • KSOH
  • ベストアンサー率93% (29/31)
回答No.1

コネクション確立のためのシステムリソース(バッファ)が足りませんというエラーだと思いますが、アプリケーションの中でSoketをopenしっぱなしで放置しているといったことはないでしょうか?

ojinnjinn
質問者

補足

ご回答ありがとうございます!socketはshutdownOutputを毎度行いますが、これだとinput側は生き続けてることになって半分open状態ってことになる?のでしょうか。。だとすると、システムリソースを食い続けてる事になっていそうです。 また、更に疑問がわいてきました。socketを毎回closeするようにすれば、その時点でシステムリソースは開放されるのでしょうか? また、一度closeしたsocketインスタンスは接続しようとすると isclosed 状態が返って来て接続できません。 一度closeしたソケットインスタンスは再利用はできないのでしょうか?