プロが教えるわが家の防犯対策術!

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

A 回答 (1件)

開放されます。

API Documentをよく読めば見えてくると思いますよ!

この回答への補足

ご回答ありがとうございます!すみません、勉強不足でした・・ソケット接続・切断を繰り返す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

補足日時:2015/01/10 15:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!