Autor Tema: Problema Con WinSock y su SendData [SOLUCIONADO]  (Leído 5297 veces)

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

Jhonjhon_123

  • Bytes
  • *
  • Mensajes: 24
  • Reputación: +0/-0
    • Ver Perfil
Problema Con WinSock y su SendData [SOLUCIONADO]
« 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
« última modificación: Enero 17, 2010, 09:49:01 pm por Jhonjhon_123 »

coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:Problema Con WinSock y su SendData
« Respuesta #1 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
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Problema Con WinSock y su SendData
« Respuesta #2 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

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.


Jhonjhon_123

  • Bytes
  • *
  • Mensajes: 24
  • Reputación: +0/-0
    • Ver Perfil
Re:Problema Con WinSock y su SendData
« Respuesta #3 en: Enero 02, 2010, 02:03:39 pm »
Gracias Leandro por el Ejemplo, lo boy a mirar!

Jhonjhon_123

  • Bytes
  • *
  • Mensajes: 24
  • Reputación: +0/-0
    • Ver Perfil
Re:Problema Con WinSock y su SendData
« Respuesta #4 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??

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Problema Con WinSock y su SendData
« Respuesta #5 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

saludos.

Jhonjhon_123

  • Bytes
  • *
  • Mensajes: 24
  • Reputación: +0/-0
    • Ver Perfil
Re:Problema Con WinSock y su SendData
« Respuesta #6 en: Enero 03, 2010, 10:34:21 pm »
ya lo he resuelto, gracias!