Winsock operacion send seguida de connect.

Iniciado por Distorsion, 14 Marzo 2008, 16:12 PM

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

Distorsion

Hasta ahora lo que  he programado no a necesitado instrucciones de envio de datos inmediatamente despues de conectar pero ahora me encuentro en un caso que si lo necesita y no se como solucionarlo, el codigo:
ws.connect
ws.senddata "lo_que_sea"


Da error porque dice que el estado de la conexion es erroneo, he provado a poner un sleep para dar tiempo a la conexion pero peta igual.
A alguien se le ocurre una solucion?¿
Saludos.

Lambda

Cita de: Distorsion en 14 Marzo 2008, 16:12 PM
Hasta ahora lo que  he programado no a necesitado instrucciones de envio de datos inmediatamente despues de conectar pero ahora me encuentro en un caso que si lo necesita y no se como solucionarlo, el codigo:
ws.connect
ws.senddata "lo_que_sea"


Da error porque dice que el estado de la conexion es erroneo, he provado a poner un sleep para dar tiempo a la conexion pero peta igual.
A alguien se le ocurre una solucion?¿
Saludos.



WS.Connect
Do Until WS.State = 7
WS.SendData "..."

Prueba asi, creo recordar que 7 es el estado de conectado

Distorsion

Tampoco funca, haciendo que llame a una funcion y que esta sea la que lo envie tampoco, activando un timer y que este realice la funcion y luego se desactive as i mismo  si que funciona, pero es un poco xapucero, algo elegante deja mejor sabor de boca.
Gracias por la intencion.

cassiani

#3
CitarA alguien se le ocurre una solucion?¿

Pero se te olvido tomar en cuenta los eventos!!!

Cuando la conexión se efectua se produce un evento denominado: Connect y es hay donde deberias colocar la siguiente instrucción ¡prueba a ver!

Código (vb) [Seleccionar]
Private Sub Winsock1_Connect()
'Este evento Ocurre cuando hemos establecido con éxito la conexión al servidor
    Winsock1.SendData "lo_que_sea"
End Sub


Cuando la conexión se establece se envia la cadena.

¡S4lu2!

Distorsion

Gracias por la ayuda, pensava que la funcion connect era blokeante y al pasar a la siguiente instruccion ya estaba conectado. :P