public boolean isOpen() { return datagramChannel.isOpen(); }
/** * Receive a datagram from the media layer. * * @param buffer into which the datagram will be received. * @return the source address of the datagram if one is available otherwise false. */ public InetSocketAddress receive(final ByteBuffer buffer) { buffer.clear(); InetSocketAddress address = null; try { if (receiveDatagramChannel.isOpen()) { address = (InetSocketAddress)receiveDatagramChannel.receive(buffer); } } catch (final PortUnreachableException ignored) { } catch (final Exception ex) { LangUtil.rethrowUnchecked(ex); } return address; } }
public static int sendTo( final UdpChannelTransport transport, final ByteBuffer buffer, final InetSocketAddress remoteAddress) { final int remaining = buffer.remaining(); int bytesSent = 0; try { if (null != transport && null != transport.sendDatagramChannel && transport.sendDatagramChannel.isOpen()) { transport.sendHook(buffer, remoteAddress); bytesSent = transport.sendDatagramChannel.send(buffer, remoteAddress); } } catch (final IOException ex) { sendError(remaining, ex, remoteAddress); } return bytesSent; } }
@Override @SuppressWarnings("deprecation") public boolean isActive() { DatagramChannel ch = javaChannel(); return ch.isOpen() && ( config.getOption(ChannelOption.DATAGRAM_CHANNEL_ACTIVE_ON_REGISTRATION) && isRegistered() || ch.socket().isBound()); }
@Override public boolean hasExpired(SlotInfo<? extends DatagramChannelPoolable> info) throws Exception { DatagramChannel channel = info.getPoolable().getChannel(); return !channel.isConnected() || !channel.isOpen(); } }
/** * Send contents of {@link java.nio.ByteBuffer} to the remote address. * * @param buffer to send containing the payload. * @param remoteAddress to send to send the payload to. * @return number of bytes sent. */ public int sendTo(final ByteBuffer buffer, final InetSocketAddress remoteAddress) { final int remaining = buffer.remaining(); int bytesSent = 0; try { if (null != sendDatagramChannel) { sendHook(buffer, remoteAddress); if (sendDatagramChannel.isOpen()) { bytesSent = sendDatagramChannel.send(buffer, remoteAddress); } } } catch (final IOException ex) { sendError(remaining, ex, remoteAddress); } return bytesSent; }
static int send( final DatagramChannel datagramChannel, final ByteBuffer buffer, final SendChannelEndpoint channelEndpoint, final int bytesToSend, final int position, final InetSocketAddress destination) { int bytesSent = 0; try { channelEndpoint.sendHook(buffer, destination); buffer.position(position); if (datagramChannel.isOpen()) { bytesSent = datagramChannel.send(buffer, destination); } } catch (final PortUnreachableException ignore) { } catch (final IOException ex) { sendError(bytesToSend, ex, destination); } return bytesSent; } }
@Override @SuppressWarnings("deprecation") public boolean isActive() { DatagramChannel ch = javaChannel(); return ch.isOpen() && ( config.getOption(ChannelOption.DATAGRAM_CHANNEL_ACTIVE_ON_REGISTRATION) && isRegistered() || ch.socket().isBound()); }
@Override @SuppressWarnings("deprecation") public boolean isActive() { DatagramChannel ch = javaChannel(); return ch.isOpen() && ( config.getOption(ChannelOption.DATAGRAM_CHANNEL_ACTIVE_ON_REGISTRATION) && isRegistered() || ch.socket().isBound()); }
@Override public boolean isOpen() { if(this.dataChannel != null) { return this.dataChannel.isOpen(); } return false; }
@Override public void open() throws IOException { if(this.dataChannel == null || !this.dataChannel.isOpen()) { this.dataChannel = DatagramChannel.open(); } else { throw new IOException("Channel is already open."); } }
@Override public String getLocalHost() { if(this.dataChannel != null && this.dataChannel.isOpen()) { try { return ((InetSocketAddress) this.dataChannel.getLocalAddress()).getHostString(); } catch (IOException e) { logger.error("Could not lookup the local channel address: "+ e.getMessage(), e); } } return ""; }
@Override public int getLocalPort() { if(this.dataChannel != null && this.dataChannel.isOpen()) { return this.dataChannel.socket().getLocalPort(); } return 0; }
@Override public void send(byte[] buf, int off, int len) throws IOException { if (!hasTimeout()) { if (this.channel != null && this.channel.isOpen() && this.channel.isConnected()) { this.channel.send(ByteBuffer.wrap(buf, off, len), channel.getRemoteAddress()); } else { logger.warn("Handler skipped send operation because channel is not open or connected."); } } else { logger.warn("Handler has timed out so send operation will be skipped."); } }
@Override public boolean hasExpired(SlotInfo<? extends DatagramChannelPoolable> info) throws Exception { DatagramChannel channel = info.getPoolable().getChannel(); return !channel.isConnected() || !channel.isOpen(); } }
private void connect(SampleResult res) { if (channel == null || !channel.isOpen()) { try { channel = (DatagramChannel) getChannel(); } catch (IOException ex) { log.error("Cannot open channel", ex); } } res.connectEnd(); }
@Override @SuppressWarnings("deprecation") public boolean isActive() { DatagramChannel ch = javaChannel(); return ch.isOpen() && ( config.getOption(ChannelOption.DATAGRAM_CHANNEL_ACTIVE_ON_REGISTRATION) && isRegistered() || ch.socket().isBound()); }
@Override @SuppressWarnings("deprecation") public boolean isActive() { DatagramChannel ch = javaChannel(); return ch.isOpen() && ( config.getOption(ChannelOption.DATAGRAM_CHANNEL_ACTIVE_ON_REGISTRATION) && isRegistered() || ch.socket().isBound()); }
@Override @SuppressWarnings("deprecation") public boolean isActive() { DatagramChannel ch = javaChannel(); return ch.isOpen() && ( config.getOption(ChannelOption.DATAGRAM_CHANNEL_ACTIVE_ON_REGISTRATION) && isRegistered() || ch.socket().isBound()); }
@Override @SuppressWarnings("deprecation") public boolean isActive() { DatagramChannel ch = javaChannel(); return ch.isOpen() && ( config.getOption(ChannelOption.DATAGRAM_CHANNEL_ACTIVE_ON_REGISTRATION) && isRegistered() || ch.socket().isBound()); }