public DatagramSocket(int port, InetAddress laddr) throws SocketException
public DatagramSocket() throws SocketException
  public DatagramSocket(int port, InetAddress laddr) throws SocketException  {    if (port < 0 || port > 65535)      throw new IllegalArgumentException("Invalid port: " + port);    SecurityManager s = System.getSecurityManager();    if (s != null)      s.checkListen(port);    String propVal = System.getProperty("impl.prefix");    if (propVal == null || propVal.equals(""))      impl = new PlainDatagramSocketImpl();    else      try	{	  impl = (DatagramSocketImpl) Class.forName("java.net." + propVal +					"DatagramSocketImpl").newInstance();	}      catch (Exception e)	{	  System.err.println("Could not instantiate class: java.net." +	    propVal + "DatagramSocketImpl");	  impl = new PlainDatagramSocketImpl();	}    impl.create();    // For multicasting, set the socket to be reused (Stevens pp. 195-6).    if (this instanceof MulticastSocket)      impl.setOption(SocketOptions.SO_REUSEADDR, new Boolean(true));    impl.bind(port, laddr == null ? InetAddress.ANY_IF : laddr);  }