Hello Martin,

Here is a small example:

procedure TFoo.FUDPDataAvailable(Sender: TObject; Error: word);
   Buffer: array [0..1023] of char;
   Len: integer;
   Src: TSockAddrIn;
   SrcLen: integer;
   SrcLen := SizeOf(Src);
   Len  := TWSocket(Sender).ReceiveFrom(@Buffer, SizeOf(Buffer), Src, SrcLen);
   if Len < 0 then
   Buffer[Len] := #0;

   {$ifdef DEBUG}
      WriteLn('UDP packet received from ', inet_ntoa(Src.sin_addr));
      WriteLn('Data ', Buffer);

Rgds, Wilfried [TeamICS]

Friday, October 17, 2008, 04:47, Xealot wrote:

> Hello!

> I would like to know if its possible to get the address that a UDP packet
> comes from.

> I am making an application that will send multiple packets to different
> hosts using SendTo and I will be receiving replies from them.

> I have no power to change the protocol, so I need to know if its possible to
> find out the address each packet arrived from.

> Currently, I use bytesread := sock.Receive(@data, SizeOf(data));  to receive
> the data.

> where sock is a TWSocket object.  sock.Addr will not work here.. :(

> Thanks for taking your time,

>  - Martin E.

To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to