Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Send Packet (https://www.clubdelphi.com/foros/showthread.php?t=58540)

rauros 23-07-2008 15:07:17

Send Packet
 
¿Como puedo envíar paquetes y recibirlos? Estoy toqueteando los indy client pero no encuentro nada. Gracias por la ayuda.

Neftali [Germán.Estévez] 23-07-2008 17:14:21

¿Has mirado las demos que vienen con Delphi?
¿Has mirado los métodos de los componentes?
ReadLn, ReadStream, ReadLn,....

rauros 23-07-2008 18:42:30

Pues no sé que demos me deben servir, ni que metodos ni que componentes...

Neftali [Germán.Estévez] 24-07-2008 10:03:19

Cita:

Empezado por rauros (Mensaje 302731)
Pues no sé que demos me deben servir, ni que metodos ni que componentes...

Pues supongo que las que vienen con Delphi.
Directorio de Demos de Delphi, concretamente en la carpeta Indy.
¿Miraste las demos?

Cita:

Empezado por rauros (Mensaje 302731)
ni que metodos ni que componentes...

Los que aparecen en la ayuda de los componentes.
¿Miraste la ayuda?

Supongo que es más fácil preguntar y que el resto te de el trabajo hecho y mascadito; Lo siento, pero esa es la impresión que me dan tus mensajes.:mad:

rauros 24-07-2008 13:37:27

Vale si no me quieres ayudar no me ayudes, pero no encuentro la ayuda... Yo pensaba usando IdUDPClient y IdTCPClient pero es que no encuentro en las demos nada. En indy no hay ningún proyecto ni ningún form, ni ninguna unidad...

Código:

Delphi 7
Indy V9 Demos

===========================

Indy V9 Demos

Demo applications for Indy V9 are available from the
downloads section on the Indy site at:

http://www.nevrona.com/indy

As new demos are constantly being built and tested,
this is the most up to date location for demo
downloads.

If you have any problems with demos please join the
"Indy Demos" group at yahoo groups, and report them
there:

http://groups.yahoo.com/group/Indy-Demos/

Vamos, que buscando he encontrado http://www.indyproject.org/index.en.aspx , pero no encuentro información aparente...

Rockin 24-07-2008 14:06:18

Enviar Mensajes algo como:

Código Delphi [-]
UDPClient.Send('Mensaje Enviado por UDPClient');
Para recibirlos:

Código Delphi [-]
procedure TfrmValidaciones.UDPServerUDPRead(Sender: TObject;
  AData: TStream; ABinding: TIdSocketHandle);
begin
               ShowMessage('Mensaje Recibido');
end;

Ya tienes que configurar el puerto, el host, etc...

rauros 24-07-2008 14:08:53

Pues vaya, muchísimas gracias. Hay un problema con la ayuda rápida, y es que no salen todos los componentes... Si alguien sabe alguna recopilación de información ...

rauros 24-07-2008 14:51:20

Vale, he intentado algo rarísimo... Pero creo que me alejo de como se usa.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
IDUDPClient1.Send(edit2.Text);
end;

procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
begin
Showmessage('probando')
end;

No ocurre nada. El host lo tengo puesto en 127.0.0.1 y los puertos todos en 2040.

Rockin 25-07-2008 12:53:14

1 Archivos Adjunto(s)
Aqui te adjunto un pequeño ejemplo muy tonto para que sigas investigando. Cambia el host por la ip de tu ordenador

Saludos

rauros 27-07-2008 12:32:42

He visto tu ejemplo y creo saber como funciona xD. Pero tengo un problema, llevo un día buscando para saber como usar stream, pero no tengo ni idea... Digo yo que si envío un string

Send('prueba');

Recibo un stream?

AData: TStream

Rockin 28-07-2008 10:05:25

Para leer una cadena, pon el siguiente codigo;

Código Delphi [-]
procedure TfrmFidelizacion.UDPServerUDPRead(Sender: TObject;
  AData: TStream; ABinding: TIdSocketHandle);
var
        Cadena : TStringStream;
        
begin

        Cadena := TStringStream.Create('')
        Cadena.CopyFrom(AData, 22); --> 22 en el numero de bytes que lees.
        ShowMessage(cadena.DataString);

end;

Espero que te aclare algo.

rauros 28-07-2008 11:42:38

Pues de aquí no sé que falla (he puesto 127.0.0.1).

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
        IdUDPClient1.Send(edit1.text);
end;

procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var
Cadena: TStringStream;
begin
cadena:=TStringStream.Create('');
cadena.CopyFrom(AData, 255);
showmessage(cadena.DataString);
end;

Yo es que de programación entiendo bastante, pero cuando se llega a conexión con otros pc me cuesta comprender.

Rockin 28-07-2008 12:41:50

Teoricamente está correcto. Busca en el foro o google sobre el metodo de leer stream y pasarlo a texto. Yo lo saque por ahi.

Saludos.

rauros 30-07-2008 22:15:18

Vale, ya se porque es el error. Ahora necesito saber porque solo funciona con modem, y no con routers. Porque necesito hacer un programa que funcione con todos mis clientes, tengan router, modem o un par de basos con un hilo :D. Aparte necesito saber cuanto mide el stream, ya que es el problema si mando "prueba" no puedo poner que mide 1000 caracteres, que peta xD.

Muchas gracias a los que ayudan.


La franja horaria es GMT +2. Ahora son las 21:08:06.

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