Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: BloCKeadO en 18 Junio 2005, 00:52 am



Título: VB6 se me bloquea
Publicado por: BloCKeadO en 18 Junio 2005, 00:52 am
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.


Título: Re: VB6 se me bloquea
Publicado por: Slasher-K en 18 Junio 2005, 01:20 am
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.


Título: Re: VB6 se me bloquea
Publicado por: BloCKeadO en 18 Junio 2005, 01:24 am
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.


Título: Re: VB6 se me bloquea
Publicado por: byebye 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.


Título: Re: VB6 se me bloquea
Publicado por: BloCKeadO en 18 Junio 2005, 10:25 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

Código:
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.


Título: Re: VB6 se me bloquea
Publicado por: Slasher-K en 18 Junio 2005, 10:27 am
Intenta con la instrucción End en el evento Unload del formulario.

Código:
Private Sub Form_Unload(Cancel As Integer)
  Call sckConexion.Close
  End
End Sub

Saludos.


Título: Re: VB6 se me bloquea
Publicado por: BloCKeadO en 18 Junio 2005, 10:56 am
Dunklerstern si lo pego tal cual, me da error que requiere un objeto el
Código:
sckConexion.Close

Si debajo añado
Código:
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.


Título: Re: VB6 se me bloquea
Publicado por: Slasher-K 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.


Título: Re: VB6 se me bloquea
Publicado por: BloCKeadO en 18 Junio 2005, 11:09 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
Código:
sckConexion.Close
donde me marca.

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

Gracias.


Título: Re: VB6 se me bloquea
Publicado por: Slasher-K en 18 Junio 2005, 11:13 am
No... lo deberías cambiar por el nombre de tu control WinSock.


Título: Re: VB6 se me bloquea
Publicado por: BloCKeadO en 18 Junio 2005, 11:16 am
No... lo deberías cambiar por el nombre de tu control WinSock.

Vale. Probare ahora mismo.

Gracias de nuevo.


Título: Re: VB6 se me bloquea
Publicado por: p0w3r f1y en 18 Junio 2005, 11:51 am
Ha mi también me ha pasado varias veces y era por eso, porque la conexión seguía activa... no creo que sea defecto de la instalacion de visual basic.... y que no te haya pasado en los otros dos ordenadores yo diría que es pura casualidad... :P. A mi la mayoría de las veces no me pasa, pero hay otras que me jode todo si no he guardado antes de ejecutar.... :( y hago exactamente lo mismo... es decir, no pasa siempre, pero a veces pasa.... :), al no ser que cierres el socket antes de detener la ejecución del programa.
Salu2.


Título: Re: VB6 se me bloquea
Publicado por: BloCKeadO en 18 Junio 2005, 12:17 pm
@ Dunklerstern , Llamando al winsock.close me sigue pasando.

@ p0w3r f1y , es que me pasa SIEMPRE con usar el ws.listen y en los otros ordenadores no me ha pasado NUNCA, por eso pienso en problema de instalacion, ya que los dos pc en los que pasa, tienen el programa instalado desde el mismo cd.

He ido haciendo otros trabajos sin usar el ws y no me ha dado problema.

Que versiones aparte de la profesional existen de vb???. Por probar una version diferente e ir sacando conclusiones.

De nuevo, Gracias.