Estoy ejecutando beyondtv link en xp, conectando a beyondtv un host de vista. El programa Link se cuelga después de unos 20 minutos, y no tengo solución para esto. Cuando esto sucede, usando tcpview, veo que el host tiene aproximadamente 200 conexiones zombie tcp sobrantes de la conexión Link. No puedo borrarlos, son del mismo proceso inexistente. Las conexiones se quedan hasta que reinicie el host. Reiniciar es la única forma en que he encontrado para volver a conectar beyondtv Link. Creo que hay un error en beyondtv que está causando esto, pero no puedo obtener ninguna respuesta en sus foros. Pero en cualquier caso, me gustaría saber si hay una manera de eliminar todas esas conexiones.
Editar: en realidad, se acumulan unas 3000 conexiones WAIT_CLOSE después de aproximadamente 40 minutos, y aproximadamente entonces el cliente muere. Si cierro la aplicación del servidor, todos estos sockets ahora se muestran como propiedad de un proceso -no existente- en tcpview. Comprensible. Pero, ¿no hay una manera de cerrarlos sin reiniciar?
fuente
Respuestas:
Puede usar los Currports de Nirsoft para monitorear y eliminar conexiones.
Puede automatizar la eliminación de un patrón de conexión con AutoHotKey.
fuente
CLOSE_WAIT significa que la conexión se cerró en el otro extremo.
Evidentemente, beyondtv no detecta esta condición y continúa enviando datos a la aplicación en el otro extremo. El otro extremo no puede enviar nada a través de esta conexión, ya que ha cerrado el final de la conexión.
La solución es establecer la entrada TcpTimedWaitDelay en
De manera predeterminada en mi máquina, esto contiene el valor de -1, lo que considero que las conexiones cerradas nunca se liberan, que es exactamente el comportamiento que está observando.
Le sugiero que establezca el valor de esta entrada en el rango permitido de 30 a 300 segundos. Supongo que 300 segundos = 5 minutos son completamente suficientes para su caso, donde se requieren 40 minutos para congelar su computadora.
fuente
TIME_WAIT
me trajo aquí. Gracias por la explicación y el enlace.Es posible que pueda forzar a Windows a cerrar forzosamente todas las conexiones TCP al 1) deshabilitar y luego 2) volver a habilitar su interfaz de red. Si eso funciona, puede realizar un script por lotes de los pasos para ejecutar cuando sea necesario.
Busqué alguna forma de hacerlo a través de la línea de comandos, desde la
netsh
utilidad (o similar), pero hasta ahora no he tenido suerte.Por supuesto, la mejor manera de arreglar esto es arreglar la aplicación rota. Asegúrese de probar la última versión de la aplicación; seguir molestando a los desarrolladores; Si ya tiene la última versión, intente localizar una versión anterior del programa.
fuente
Probablemente esté recibiendo estas sesiones CLOSE_WAIT debido al bloqueo del programa. No puedo decir si sospecha que son la causa, por lo que solo quería aclararlo.
Supongo que no se quedarán para siempre; probablemente solo por 2 horas y 5 segundos. Puede parecer una eternidad, lo sé. Puede intentar ajustar KeepAliveTime (probablemente requiera un reinicio final) para que su conexión de red se reduzca a algo pequeño, como 5 minutos. Eso podría ayudarlos a desaparecer más rápido, después de que su programa se cuelgue.
O si sabe que puede ejecutar el programa de manera confiable durante, por ejemplo, 10 minutos a la vez, puede reiniciarlo periódicamente. No sé si alguna de esas soluciones es útil para su situación particular; Estoy de acuerdo con ~ quack en que deberías deshacerte de la versión problemática de la aplicación lo antes posible.
fuente
Vea si beyondtv está generando otro proceso que mantiene abiertas las conexiones. Process Explorer le mostrará si esto está sucediendo.
fuente
¿Es posible que haya un problema con el firewall? Podría tratarse de una conexión incompleta que se está intentando y reintentando.
Deshabilitaría todos los firewalls en ambas máquinas, y si hay un enrutador también su firewall interno.
fuente
Prueba la solución WinSock XP.
http://www.snapfiles.com/get/winsockxpfix.html
Destroza su conexión y la restablece a los valores predeterminados. Siempre mantengo esto en una memoria USB cuando todo lo demás falla.
fuente