Longitud tramas Winsock TCP

Iniciado por Raskatak, 7 Octubre 2010, 19:17 PM

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

Raskatak

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

BlackZeroX

.
Cual es tu codigo de envio y de Recivo de datos?

Dulces Lunas!¡.
The Dark Shadow is my passion.

Raskatak

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
.
.
.
.


BlackZeroX

mmm
esta mal tu recivo de datos


...

ponlo en el evento DataArrival

Código (Vb) [Seleccionar]


Private Sub Socket_Out_DataArrival(ByVal bytesTotal As Long)
Dim vData                               As String
    Call Socket_In.GetData(vData)
    Call MsgBox(vData)
End Sub

The Dark Shadow is my passion.

Raskatak

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