1) Soketler için bağlantı ve okuma zaman aşımı arasındaki fark nedir?
Bağlantı zaman aşımı, ilk bağlantıyı kurma zaman aşımıdır; yani TCP bağlantısı anlaşmasının tamamlanması. Okuma zaman aşımı, veri 1'in okunması için bekleme zaman aşımıdır . Özellikle, sunucu son bayttan <<zaman aşımı> saniye sonra bir bayt gönderemezse, bir okuma zaman aşımı hatası ortaya çıkar.
2) "Sonsuzluk" olarak ayarlanmış bağlantı zaman aşımı ne demektir? Hangi durumda mastar bir döngüde kalabilir? ve sonsuzluk döngüsünün ölmesini ne tetikleyebilir?
Bu, bağlantı girişiminin sonsuza dek engellenebileceği anlamına gelir. Sonsuz bir döngü yoktur, ancak bağlantı girişimi soketi kapatan başka bir iş parçacığı tarafından engellenebilir. (Bir Thread.interrupt()
çağrı da hile yapabilir ... emin değilim.)
3) "Sonsuzluk" olarak ayarlanmış okuma zaman aşımı ne anlama gelir? Hangi durumda sonsuz bir döngüde kalabilir? Sonsuz döngünün bitmesini ne tetikleyebilir?
Bu read
, soket akışına yapılan bir çağrının sonsuza dek engellenebileceği anlamına gelir . Bir kez daha sonsuz bir döngü yoktur, ancak read
bir Thread.interrupt()
çağrı, soketi kapatarak ve (elbette) diğer uç veri göndererek veya bağlantıyı kapatarak engellenebilir .
1 - Bir yorumcunun düşündüğü gibi ... bir soketin ne kadar süre açık veya boşta kalabileceğine dair zaman aşımı değil.
HttpURLConnection.getResponseCode()
apprx için asılı idi. süreci yeniden başlatana kadar bir hafta. JVM tarafında belirli bir zaman aşımı ve Linux OS tarafında hiçbir zaman aşımı yoktu.