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

androidのソケット通信プログラムを作成しています。
何度もソケットの接続・切断を繰り返していると、以下のエラーが発生します。
Socket.connect メソッド(接続)で発生しています。
socketは毎回.closeメソッドで切断しています。

このようになると、端末を再起動しない限りソケット接続を再度行なうことはできない模様です。このエラーの発生理由がわかりません。お詳しい方おられましたら何卒よろしくお願いします。

ちなみに利用しているandroid端末はKYL21(京セラ androidバージョン4.0.4)です。


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

A 回答 (1件)

connect failed: ENOBUFS (No buffer space available)



とあるのだから、
接続の記録が、どこかのバッフアにどんどん溜まっていって、
バッファを使いきったのだと思います。

再起動すると、
バッファも空になるので、その場所を使って
接続記録を残しながら正常に接続できる

と考えます。

もし、バッファの使用状況が見れるなら使われているアドレスを調べてみれば
はっきりします。

この回答への補足

androidのWifi通信でsocket通信を行ないます。開発環境はeclipseです。この環境で上記バッファに関する調査は可能でしょうか?いろいろ調べてみましたが、たどり着けません。。よろしくおねがいします。

補足日時:2015/01/17 17:15
    • good
    • 1

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