@PaulS: Just waiting works only if you have a protocol that does not have persistent connections, HTTP for example. With protocols that typically leave the connection open as long as possible (SMB or database connections tend to be in this category), waiting is probably no option and you should change to a connectionless protocol.
The OP is using UDP (which IS connectionless) and therefore should never reach the socket limit on the Ethernet shield.