В общем, вам нужно использовать методы SendTo и ReceiveFrom вместо отправки и получения с UDP-сокетами.Таким образом, вы можете получить IP: порт (конечную точку) отправителя - так что вы можете отправить ответ обратно на тот же адрес.Мой VB слабый, поэтому я приведу простой пример на C #.
byte [] buffer = new byte[1500];
IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
EndPoint senderRemote = (EndPoint)sender;
EndPoint senderRemote;
int bytesReceived = socket.recvFrom(buffer, senderRemote);
// echo the message back to the sender
if (bytesReceived > 0)
socket.sendTo(buffer, bytesReceived, senderRemote);