Thank you for your reply.
Yes it is for UDP messages.
Currently using .Receive inside an OnDataAvailable procedure
and it works fine, retrieving the message contents.
This is obviously only called when data is available.
If .Receive is simply replaced with .ReceiveFrom,
and a message arrives, then execution disappears into
TWSocket code and never returns.
Putting it in a try except does not help.
Maybe there is another way I can retrieve the senders
address?