Why does Udp behave as I described above?
Answer: Udp is unreliable connection-less protocol. UDP sockets or Datagram sockets are different from the TCP sockets in a number of ways. The most important difference is that UDP sockets are not connection oriented. A UDP server does not have to listen for and accept client connections, and a UDP client does not have to connect to a server.
What is the proper way to correct his behavior? Knowing that I really cannot guarantee that there will always be a device connected the Ethernet Shield to receive UDP packets at power up.
Answer: Simple ask your Receiving Device
are you connected if yes send me "I am connected" just kidding
. Means receiving Device acknowledged the sender by some mechanism on application layer.
Is my solution to the problem appropriate, that is, is it going to cause some issues down the road since I am calling Udp.begin() in the main loop instead of Setup()?
Answer: NO(Actually i don't understand what you want to say in last question).