2012-11-01 14 views
6

"Bağlantı zaman aşımına uğradı". Yavaş ağlarda, 30 saniye bekledikten sonra ConnectionTimeoutException alırım (ve sonra tekrar denerim); ancak "birkaç" durumlar vardır (ı gözlemlemek hiçbir desenli), bunlardan birini almak:Fark Zaten aşağıdaki parametreleri ayarladıktan (Apache HTTP Client kullanarak) benim Android Kodu

registry.register(new Scheme("https", 
    SSLCertificateSocketFactory.getHttpSocketFactory(30 * SECOND_IN_MILLIS, null), 443)); 

I: Testten altında hala SO gelen bu kodu, var

javax.net.ssl.SSLException: Read error: ssl=0xe71160: I/O error during system call, Connection timed out javax.net.ssl.SSLException: Write error: ssl=0xe71160: I/O error during system call, Broken pipe

Bağlantı kurma zaman aşımı ve yuva zaman aşımını anlayabilir - sorgularım gerçekten SSL için bu 3 zaman aşımına ihtiyacımız var mı? Amaç SO_TIMEOUT'tan nasıl farklıdır?

PS: Bu excepions/okuma veri yazarken resmini gelip görünmektedir - veri kaybına neden olması gereken - ama onu da gözlemlemek mümkün değil.

cevap

2

fark hiçbir bağlantı hiç kurulabilir zaman ConnectionTimeoutException oluşur olmasıdır. Yani sunucuya hiç ulaşılamıyor.

SSLException bağlantı zaten kuruldu oluşur fakat SSL sırasında bağlantı sürelerini el sıkışma. SSL el sıkışma başladıktan sonra zaman aşımı oluştuğundan, SSLException daha yüksek bir özel durum olarak atılır.

SSLException'un nedeninin ConnectionTimeoutException girilip girilmediğini kontrol etmeyi deneyebilirsiniz.

İlgili konular