VB6 se me bloquea

Iniciado por BloCKeadO, 18 Junio 2005, 00:52 AM

0 Miembros y 1 Visitante están viendo este tema.

BloCKeadO

Buenas, estoy haciendo un ejercicio cliente/servidor.

Bien, tengo el servidor que al iniciar abra el puerto 2525 y ponga el winsock a la escucha con ws.listen

El caso esta en que al querer parar el programa desde la barra de herramientas, se cierran los forms pero vb6 se queda bloqueado y solo puedo cerrando si finalizo el proceso.

Esto solo pasa en mi pc, he probado en 2 mas y se para bien sin problemas, no se si puede haber alguna aplicacion que lo provoque, he cerrado el firewall (zone alarm), antivirus (mcafee), sniffer de registro (spybot) y sigue sucediendo.

Alguna suguerencia o posible motivo???

Gracias.

Slasher-K

No te olvides de llamar al método Close antes de cerrar la aplicación, sino el control se va a descargar pero la conexión va a seguir activa.

Además no estoy seguro pero si no me equivoco cuando el control se descarga llama a la función WSACleanup y si es así descarga la DLL de winsock de memoria, entonces esa es la razón por la que se cuelga.

Saludos.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

BloCKeadO

Al close lo llamo desde un command para salir, el cual tambien hace que se cualge. Lo normal es que lo pare desde el stop de la barra de herramienta.

Lo mejor es que solo pasa en mi pc, lo he probado en 2 mas y funciona con normalidad, por lo que deduzco que algo hay en mi pc que no anda bien con el ws.

byebye

revisa los bucles, suele pasar que te dejes algun fallo y cierre el form pero la aplicacion continue ejecutandose. mira en los otros pc si se cierra el form pero el proceso coninua apareciendo.

BloCKeadO

Cita de: Cara_Webo en 18 Junio 2005, 03:13 AM
revisa los bucles, suele pasar que te dejes algun fallo y cierre el form pero la aplicacion continue ejecutandose. mira en los otros pc si se cierra el form pero el proceso coninua apareciendo.

Bucles no hay, en teoria el form se cierra por que vuelvo a la pantalla de codigo de programacion.

El codigo minimo para que me pase es este:

1 form - 1 Winsock

En el form load


winsock.remoteport = "cualquier puerto"
winsock.listen


Al ejecutarlo con el f5 y quererlo parar para seguir introduciendo codigo, ya se me queda bloqueado.

El form se cierra y desaparece del escritorio, pero al parecer lo que no consigue hacer es volver a mostrar la pantalla con el codigo de programacion.

La version que uso es la profesional de la version 6.

Gracias.

Slasher-K

Intenta con la instrucción End en el evento Unload del formulario.


Private Sub Form_Unload(Cancel As Integer)
  Call sckConexion.Close
  End
End Sub


Saludos.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

BloCKeadO

Dunklerstern si lo pego tal cual, me da error que requiere un objeto el sckConexion.Close

Si debajo añado sckConexion.Close: sin mas me sucede lo mismo.

Me sucede en dos pc que coincide el cd usado para la instalacion del vb, podria ser problema de la instalacion del programa en su dia, que por algun motivo el programa no se instale al 100%??? o problema del .ocx del winsock???.

Gracias.

Slasher-K

sckConexion es el nombre del socket, lo que hago es llamar al método Close para asegurar que cierre las conexiones y deje de escuchar.

Saludos.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

BloCKeadO

Cita de: Dunklerstern en 18 Junio 2005, 11:05 AM
sckConexion es el nombre del socket, lo que hago es llamar al método Close para asegurar que cierre las conexiones y deje de escuchar.

Saludos.

Bien, entonces si lo pongo tal cual lo escribistes, me da error "se requiere un obleto", depuro y es el sckConexion.Close donde me marca.

Haber si puedo conseguir otro cd de instalacion del vb y probar de nuevo.

Gracias.

Slasher-K

No... lo deberías cambiar por el nombre de tu control WinSock.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*