Android: каковы причины возникновения java.net.SocketException: истекло время ожидания соединения? - PullRequest
4 голосов
/ 19 апреля 2011

В моем приложении загружаю данные. все было хорошо, но некоторые давали странный ответ и выдавали socketException: connectiontimout?

пожалуйста, кто-нибудь может сказать мне, каковы причины этого исключения? так что я могу понять проблему?

Дай мне какое-нибудь решение, чтобы избежать подобных исключений

Вот лог ............

**

04-19 15:44:52.591: WARN/System.err(18199): java.net.SocketException: Connection timed out
04-19 15:44:52.591: WARN/Smack/Packet(209): notify conn break (IOEx), close connection
04-19 15:44:52.591: DEBUG/Smack(209): [XMPPConn] close connection, notifyClosed=false
04-19 15:44:52.591: WARN/System.err(18199):     at org.apache.harmony.luni.platform.OSNetworkSystem.read(Native Method)
04-19 15:44:52.591: WARN/System.err(18199):     at dalvik.system.BlockGuard$WrappedNetworkSystem.read(BlockGuard.java:273)
04-19 15:44:52.591: WARN/System.err(18199):     at org.apache.harmony.luni.net.PlainSocketImpl.read(PlainSocketImpl.java:458)
04-19 15:44:52.591: WARN/System.err(18199):     at org.apache.harmony.luni.net.SocketInputStream.read(SocketInputStream.java:85)
04-19 15:44:52.591: WARN/System.err(18199):     at java.io.BufferedInputStream.read(BufferedInputStream.java:319)
04-19 15:44:52.591: WARN/System.err(18199):     at org.apache.harmony.luni.internal.net.www.protocol.http.FixedLengthInputStream.read(FixedLengthInputStream.java:44)
04-19 15:44:52.591: WARN/System.err(18199):     at java.io.BufferedInputStream.read(BufferedInputStream.java:319)
04-19 15:44:52.591: WARN/System.err(18199):     at java.io.FilterInputStream.read(FilterInputStream.java:133)
04-19 15:44:52.591: WARN/System.err(18199):     at com.logictreeit.pilot.utils.Download.Download1(Download.java:245)
04-19 15:44:52.591: WARN/System.err(18199):     at com.logictreeit.pilot.utils.Download.access$4(Download.java:225)
04-19 15:44:52.591: WARN/System.err(18199):     at com.logictreeit.pilot.utils.Download$DownloadTask.doInBackground(Download.java:171)
04-19 15:44:52.591: WARN/System.err(18199):     at com.logictreeit.pilot.utils.Download$DownloadTask.doInBackground(Download.java:1)
04-19 15:44:52.591: WARN/System.err(18199):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
04-19 15:44:52.591: WARN/System.err(18199):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
04-19 15:44:52.591: WARN/System.err(18199):     at java.util.concurrent.FutureTask.run(FutureTask.java:138)
04-19 15:44:52.591: WARN/System.err(18199):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
04-19 15:44:52.591: WARN/System.err(18199):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
04-19 15:44:52.591: WARN/System.err(18199):     at java.lang.Thread.run(Thread.java:1019)

**

С уважением, Шринивас

Ответы [ 2 ]

3 голосов
/ 19 апреля 2011

«Тайм-аут соединения» - это ожидаемое поведение в сетевой среде. Это даже более ожидаемо в мобильной среде, где сетевые соединения могут быть ненадежными. Это означает, что сервер не отвечает в течение определенного количества секунд.

Поскольку это нормальное поведение, вам нужно справиться с этим в приложении для Android. Либо попытайтесь повторить попытку, отобразите сообщение об ошибке для вашего пользователя, либо сделайте что-нибудь еще подходящее.

0 голосов
/ 19 апреля 2011
...