• 締切済み

javaのsocketインスタンスについて

javaでソケット接続するプログラムを作成しています。 socketを.closeした場合、このsocketインスタンスのシステムリソースは開放されるのでしょうか? お詳しい方おられましたらよろしくお願いします。

みんなの回答

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

開放されます。API Documentをよく読めば見えてくると思いますよ!

ojinnjinn
質問者

補足

ご回答ありがとうございます!すみません、勉強不足でした・・ソケット接続・切断を繰り返すjavaプログラムで毎回 .closeを行なっているのですが、ENOBUFSというエラーがsocket.connect で発生してしまいます。socketはServiceのインスタンスフィールドとして宣言し、Serviceのメインメソッドでnewしています。受信はそのsocketを別スレッドで参照しています(受信状態をある期間続けたいため)。送信に関しても別スレッドでsocketを参照して動作させています。・・という実装になっていますが、何かENOBUFSが発生する要因って他に考えられますでしょうか・・? 01-09 09:06:46.418: W/System.err(29936): java.net.ConnectException: failed to connect to /192.168.10.12 (port 50000): connect failed: ENOBUFS (No buffer space available) 01-09 09:06:46.418: W/System.err(29936): at libcore.io.IoBridge.connect(IoBridge.java:114) 01-09 09:06:46.418: W/System.err(29936): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192) 01-09 09:06:46.418: W/System.err(29936): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:460) 01-09 09:06:46.418: W/System.err(29936): at java.net.Socket.connect(Socket.java:838) 01-09 09:06:46.418: W/System.err(29936): at java.net.Socket.connect(Socket.java:791) 01-09 09:06:46.418: W/System.err(29936): at com.example.simple_test.Wifi_Service.Socket_Connect(Wifi_Service.java:2033) 01-09 09:06:46.428: W/System.err(29936): at com.example.simple_test.Wifi_Service$10.run(Wifi_Service.java:1938) 01-09 09:06:46.428: W/System.err(29936): Caused by: libcore.io.ErrnoException: connect failed: ENOBUFS (No buffer space available) 01-09 09:06:46.428: W/System.err(29936): at libcore.io.Posix.connect(Native Method) 01-09 09:06:46.428: W/System.err(29936): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85) 01-09 09:06:46.428: W/System.err(29936): at libcore.io.IoBridge.connectErrno(IoBridge.java:127) 01-09 09:06:46.428: W/System.err(29936): at libcore.io.IoBridge.connect(IoBridge.java:112) 01-09 09:06:46.428: W/System.err(29936): ... 6 more