Classes implementing this interface follow the factory pattern, generating
DatagramSocket objects for use by other classes in the stack.
By extending this interface and using the method
it is possible for the application developer to ensure their own variety
of DatagramSocket is used by the ice4j stack and passed back to their
application when the ICE protocol is completed.