docs: public int sendUDP (Object object) {
  		if (object == null) throw new IllegalArgumentException("object cannot be null.");
  		SocketAddress address = udpRemoteAddress;
  		if (address == null && udp != null) address = udp.connectedAddress;
  		if (address == null && isConnected) throw new IllegalStateException("Connection is not connected via UDP.");
  
  		try {
  			if (address == null) throw new SocketException("Connection is closed.");
  
  			int length = udp.send(this, object, address);
  			if (length == 0) {
  				if (TRACE) trace("kryonet", this + " UDP had nothing to send.");
  			} else if (DEBUG) {
  				if (length != -1) {
  					String objectString = object == null ? "null" : object.getClass().getSimpleName();
  					if (!(object instanceof FrameworkMessage)) {
  						debug("kryonet", this + " sent UDP: " + objectString + " (" + length + ")");
  					} else if (TRACE) {
  						trace("kryonet", this + " sent UDP: " + objectString + " (" + length + ")");
  					}
  				} else
  					debug("kryonet", this + " was unable to send, UDP socket buffer full.");
  			}
  			return length;
  		} catch (IOException ex) {
  			if (DEBUG) debug("kryonet", "Unable to send UDP with connection: " + this, ex);
  			close();
  			return 0;
  		} catch (KryoNetException ex) {
  			if (ERROR) error("kryonet", "Unable to send UDP with connection: " + this, ex);
  			close();
  			return 0;
  		}
  	}