Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: Jhonjhon_123 en Diciembre 30, 2009, 11:58:22 pm

Título: Problema Con WinSock y su SendData [SOLUCIONADO]
Publicado por: Jhonjhon_123 en Diciembre 30, 2009, 11:58:22 pm
Hola!

Bueno, la cosa es:

En un picturebox el cual al mover el mouse envia datos por winsock:

Código: [Seleccionar]
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Enviar X & "|" & Y, Index

End Sub

y la funccion "Enviar":

Código: [Seleccionar]
Public Function Enviar(Data As String, Index As Integer)
WS(Index).SendData Data & "//final//"
End Function

El problema es que el evento  "al mover el mouse" susede muy rapido y envia igual

entonces si enviara "2|3//final//" normalmente, rapido me uniria dos coordenadas asi "2|3//final//2|3//final//" y bueno salta error.

Espero me allan entendido

Mi pregunta es:

Por que se da ese error??
Como lo soluciono??

Gracias
Título: Re:Problema Con WinSock y su SendData
Publicado por: coco en Diciembre 31, 2009, 03:15:43 am
...

Es que eso que decis NO es un error, ni nada.. tenes que hacer algun sistemita que separe los pedidos 1x1 y que los parsee tambien 1x1, partiendolos con algun delimitador.

Saludos
Título: Re:Problema Con WinSock y su SendData
Publicado por: LeandroA en Diciembre 31, 2009, 04:00:40 pm
hola esa forma te traera muchos incovenientes, te explico que pasa

vos envias 2|3//final//  pero resulta que los datos no siempre llegan tal como vos los enviaste osea estos se van acumulando en el buffer del winsock, si lo probas en tu misma pc y va todo bien te puede llegar los datos de uno en uno pero cuando lo agas de forma remota te va a llegar asi 2|3//final//2|3//final//   esto se puede solucionar con un simple split pero la cosa biene peor te puede llegar asi  2|3//final//2|3//fi   y despues asi  nal//2|3//final//2| y se desconchan todos los datos.

para este tipo de cosas lo mejor es pasar extructuras para ver mas sobre el tema click aca (http://www.recursosvisualbasic.com.ar/htm/listado-api/261-mandar-udt-en-winsock-con-copymemory.htm)

Te hice un ejemplo de como enviar las cordenadas del mouse y los estados de los botones del mouse. (yo use dos picutures despues vos adaptalo)
http://www.leandroascierto.com.ar/archivos/Winsock_mouse.zip


Saludos.

Título: Re:Problema Con WinSock y su SendData
Publicado por: Jhonjhon_123 en Enero 02, 2010, 02:03:39 pm
Gracias Leandro por el Ejemplo, lo boy a mirar!
Título: Re:Problema Con WinSock y su SendData
Publicado por: Jhonjhon_123 en Enero 02, 2010, 04:04:04 pm
Tengo el sig problema ahora, antes yo enviaba datos indefinidos, ocea:

con el type:
Nombre As String * 40

solo envia los primeros 40 caracteres, que pasa si son 2000 o mas caracteres como aqui:(http://www.multiupload.com/G5YJIZEORV).

Como defino una longitud indefinida??
Título: Re:Problema Con WinSock y su SendData
Publicado por: LeandroA en Enero 02, 2010, 06:43:36 pm
Para esos caso creo que lo mejor es enviarlo como un array de bits, y bueno primero tendrias que enviar las dimenciones del array(tamaño) y luego que el server envie una respuesta de que ya tiene el tamaño y luego enviar el array, pero no todo de golpe sino por fragmentos de 1kb aproximadamente.
mirate el ejemplo de la webcam (http://www.leandroascierto.com.ar/categoria/Proyectos/articulo/Webcam%20via%20Socket.php)

saludos.
Título: Re:Problema Con WinSock y su SendData
Publicado por: Jhonjhon_123 en Enero 03, 2010, 10:34:21 pm
ya lo he resuelto, gracias!