![]() |
Rececpción de buffer incerrecta ?¿
Hola
Tengo una aplicación que recibe un buffer proviniente de la red i trata el string en una base de datos. Las comunicaciones funcionan correctamente. El problema es la recepción de la cadena de caracteres. Me explico; el trozo de codigo donde se trata la cadena es el siguiente: Código:
procedure ServerReceive(ID: integer; Buffer: ETCPBuffer; Size: integer); El problema esta en que si yo desde local envio: 1234567890123456recibo 1234567890123456en cambio si envio desde la red: 1234567890123456lo que recibo(O el programa lee) es lo siguiente: 234567890123456Es decir "se come" el primer caracter, lo he probado con un cliente hardware, uno de software de delphi otro de Visual Basic i siempre pasa lo mismo. Tengo un servidor parecido hecho en Visual Basic i no pasa, por lo que creo que es problema de mi Buffer que elimina el primer caracter.... Sabeis como se puede arreglar? ya que me está trayendo de cabeza porqué no logro entender el porqué en local si que funciona i en remoto se come el caracter. Gracias! Saludos. |
Hola
Me respondo a mi mismo... Se ve que para encontrar la solución tengo que postear i me viene sola xD (llevava unos dias tras esto) El tema está en que al hacer el move el buffer se vuelca en Recepcio pero la copia se realiza desde el caracter [0] i delphi al leer el string lo hace a partir del caracter [1]. Lo que he hecho es simplemente lo siguiente: Código:
move(Buffer, Recepcio, 16); Saludos |
No sabría yo cuál es el problema pero ese move lo veo raro. Creo que deberías mover no hacia Recepcio, sino hacia Recepcio[1] y luego asignar a Recepcio[0] la longitud del string en lugar de ese Delete.
EDITO ¡Oh! Veo que ya resolviste el misterio :) // Saludos |
Hola,
Tengo un (varios) problema con el buffer. Con el "apaño" que he hecho funciona, pero no me convence... si alguien tiene otra opción... :s Otra cosa, el buffer que me llega proviene de una conexión TCP con lo que me llega lo que han mandado más una colección de caracteres "raros", el problema esta en que lo recibido va a una base de datos y al probar de meter estos caracteres da error, las recepciones no son de un numero de caracteres fijo. Tenes la salvación para mi? Gracias! Saludos! :) |
La franja horaria es GMT +2. Ahora son las 01:58:09. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi