Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Redes (https://www.clubdelphi.com/foros/forumdisplay.php?f=37)
-   -   Problema al recibir datos desde un socket cliente (https://www.clubdelphi.com/foros/showthread.php?t=77910)

Leviatan 05-03-2012 22:29:51

Problema al recibir datos desde un socket cliente
 
Hola amigos:

Estoy utilizando Delphi 2010 y desarrollé un programita socket cliente (TIdTCPClient) que se ejecuta mediante la línea de comandos y que recibe cuatro parámetros, en este orden: IP Puerto Paquete ValorHexadecimal.

Ejemplo:

C:\cliente.exe 192.168.0.4 9998 S00312060000 0d

Donde 'S00312060000' es el Paquete y '0d' es el valor hexadecimal para la tecla ENTER.

Al depurar la aplicación el Delphi me muestra esto: 'S00312060000'#$D. #$D lógicamente es el carácter de control producto de la conversión de '0d' primeramente a decimal y luego a char, mediante la función chr().

Ahora, el problema viene cuando capturo el mensaje enviado con el Wireshak, ya que éste me muestra lo siguiente: '53 30 30 33 31 32 30 36 30 30 30 30 0d 0d 0a' y se debe recibir solamente lo que está en negrita '53 30 30 33 31 32 30 36 30 30 30 30 0d 0d 0a'. En síntesis se está recibiendo más de lo que se envía.

¿Cómo puedo lograr enviar solo lo que está en negrita?

Saludos.

Leviatan 08-03-2012 20:16:46

Hola amigos:

Ya he solucionado el problema que tenía.

El punto estaba en que yo estaba usando el método "Writeln" y que éste, aparte del string en cuestión, envía un "\n" (0d0a, o lo que es lo mismo: #$D#$A). La solución estaba en usar el "Write":

Código Delphi [-]
var
  Mensaje: string;
begin
  ...
  ClienteTCP.Socket.Write(Mensaje);
  ...
end;

Quizás a alguien le interese saber la respuesta.

Saludos.


La franja horaria es GMT +2. Ahora son las 19:49:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi