Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Raskatak en 7 Octubre 2010, 19:17 pm



Título: Longitud tramas Winsock TCP
Publicado por: Raskatak en 7 Octubre 2010, 19:17 pm
Buenas,

Tengo una aplicación cliente servidor, en VB6.0 con Winsock.

Tengo unas cuantas tramas para el "diálogo", y me funcionan todas correctamente. El problema es que tengo una un poco larga de longitud, 22000 caracteres.

Al enviarla desde el cliente al servidor, me la envía bien pero el servidor solo me recibe 4000. Además en función del ordenador donde instalo el servidor me recibe diferente pero nunca los 22000.

Al hacerlo en una red interna me recibe bien los 22000, el problema es cuando hago la comunicación entre dos ordenadores de distintas redes.

¿Tiene alguna limitación Winsock? Alguna forma de poder recibir los 22000 juntos?

Muchas gracias


Título: Re: Longitud tramas Winsock TCP
Publicado por: BlackZeroX en 8 Octubre 2010, 03:30 am
.
Cual es tu codigo de envio y de Recivo de datos?

Dulces Lunas!¡.


Título: Re: Longitud tramas Winsock TCP
Publicado por: Raskatak en 8 Octubre 2010, 16:05 pm
Código servidor

Dim trama_send as string

trama_send = "A" + meter_ceros(CStr(Len(trama_send) + 13), 6) + meter_ceros(CStr(paq_tot), 6) + trama_send
Ppal.TCP.SendData trama_send


Código cliente
Dim trama_recv as string
Dim trama_recv2 as string
Dim trama_recv3 as string
Dim trama_recv4 as string

'En un timer de 10 ms

Ppal.TCP.GetData trama_recv, , 1
Select
     Case "A"
                  Ppal.TCP.GetData trama_recv2, , 6
                  Ppal.TCP.GetData trama_recv3, , 6
                  Ppal.TCP.GetData trama_recv4, , Clng(trama_recv2)-12
.
.
.
.



Título: Re: Longitud tramas Winsock TCP
Publicado por: BlackZeroX en 8 Octubre 2010, 19:02 pm
mmm
esta mal tu recivo de datos


...

ponlo en el evento DataArrival

Código
  1.  
  2. Private Sub Socket_Out_DataArrival(ByVal bytesTotal As Long)
  3. Dim vData                               As String
  4.    Call Socket_In.GetData(vData)
  5.    Call MsgBox(vData)
  6. End Sub
  7.  
  8.  


Título: Re: Longitud tramas Winsock TCP
Publicado por: Raskatak en 11 Octubre 2010, 16:35 pm
Es que como dices tu lo tenía antes, pero me pasaba que me salyta el evento de recepción y la longitud de las trama recibida no es la total.

De todas formas lo que he hecho es como dices tu, pero reconstruyendo la trama en la recepción. Es decir que como la trama me llega en varios eventos de recepción, las voy concatenando.

De todas formas, en el código que te he puesto yo, también recibe, y está bastante bien para cuando recibes varias tramas juntas. Ya que vas recibiendo lo que vas leyendo.

Muchas gracias por las respuestas