1) ¿Cuál es la diferencia entre la conexión y el tiempo de espera de lectura para sockets?
El tiempo de espera de conexión es el tiempo de espera para realizar la conexión inicial; es decir, completar el saludo de la conexión TCP. El tiempo de espera de lectura es el tiempo de espera agotado para leer datos. En concreto, si el servidor no puede enviar un byte < de tiempo de espera> segundos después del último byte, se elevará un error de lectura de tiempo de espera.
2) ¿Qué poner el tiempo de conexión a "infinito" significa? ¿En qué situación puede permanecer en un bucle infinitivo? y ¿qué puede provocar que el bucle infinito muera?
Significa que el intento de conexión puede bloquear para siempre. No existe un ciclo infinito, pero el intento de conexión se puede desbloquear mediante otro hilo que cierre el socket. (A Thread.interrupt()
de llamadas también puede hacer el truco ... no estoy seguro.)
3) ¿Qué poner el tiempo de leer a "infinito" significa? ¿En qué situación puede permanecer en un bucle infinitivo? y ¿qué puede provocar que el bucle infinito muera?
Significa que una llamada a read
en el flujo de socket puede bloquearse para siempre. Una vez más no hay bucle infinito, pero el read
se puede desbloquear mediante una llamada Thread.interrupt()
, cerrando la toma de corriente, y (por supuesto) el otro extremo el envío de datos o el cierre de la conexión.
"El tiempo de espera de lectura es el tiempo de espera agotado para leer datos". ¿Escribió "ESPERANDO" para leer los datos? El tiempo de espera de lectura no es el tiempo durante el cual se puede abrir el socket. – corgrath
En Java puede establecer "infinito" en la conexión y leer el tiempo de espera. Me pregunto cómo pueden suceder estas situaciones (donde estará en un bucle infinitivo). Si dice que la conexión es para el protocolo de enlace TCP, ¿cómo puede la espera ser infinitiva? ¿No están todos los paquetes en TCP anclado? – corgrath
"¿El tiempo de espera de lectura no es el tiempo durante el que se puede abrir el socket?" Eso es correcto. "¿No están todos los paquetes TCP atados?" El tiempo de espera indica cuánto tiempo esperar para que el otro extremo envíe un ACUSE DE SINCRONIZACIÓN en respuesta al (los) paquete (s) SYN inicial (es). –