Сегодня нагуглил вот такое:
l := SysSockRecvFrom(diSocket, pbyData, diDataSize, 0, ADR(sa), SIZEOF(sa));
IF l < 0 THEN
SysSockClose(socket);
socket := SOCKET_INVALID;
RETURN;
END_IF
Интересно, рабочий вариант? Если да, работает ли это и и для SysSockSendTo()?