public synchronized void send(InetSocketAddress remoteHost, ByteBuffer data)
			throws SocketException {
		if (!isOpen()) {
			throw new IllegalStateException("UDP service not openned!");
		}
		try {
			byte[] buffer = new byte[data.remaining()];
			data.get(buffer);
			socket.send(new DatagramPacket(buffer, buffer.length, remoteHost));
		} catch (SocketException e) {
			throw e;
		} catch (IOException e) {
			throw new RuntimeException("Unexpected I/O error!", e);
		}
	}