I am of course aware of the difference between TCP and UDP,
Unfortunately, the circumstances do not allow it to go to TCP because it is unicast only..
The user doesn't have the possibility to simply get to the IP address, so data is sent via UDP broadcast.
I have been doing IoT for a while and as far as I am concerned there is not one single solution that beats all others in all use cases (I am currently using different solutions in different cases) so I am curious about any new or different way to do that and would like to understand what you are doing.
So the client (assuming it is an Android phone or tablet) initiates communication with the ESP8266 via UDP broadcasts and the ESP8266 replies to the sender's address via UDP unicast? (since it has the address of the client)
What if you have more than one ESP8266 devices on the LAN?
I assume that you could assign a serial number to each ESP8266 device so that the initial query from the tablet would contain the serial number and only that unit would respond.
In a similar situation, I used the last 4 of the MAC address as a serial number, so the firmware in the ESP8266 would read it and you did not have to create a unique flash image for each target. I simply write these last 4 digits on the device's case so I know which is which