List of usage examples for io.netty.channel.socket DatagramPacket content
ByteBuf content();
From source file:net.marfgamer.jraknet.RakNetPacket.java
License:Open Source License
/** * Constructs a <code>RakNetPacket</code> that reads from and writes to the * specified <code>DatagramPacket</code>. On instantiation, the first byte * of the datagram will be read and set as the ID. * /*w ww. ja v a 2s . c o m*/ * @param datagram * the <code>DatagramPacket</code> to read from and write to. */ public RakNetPacket(DatagramPacket datagram) { this(datagram.content()); }
From source file:net.marfgamer.jraknet.server.RakNetServerHandler.java
License:Open Source License
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { if (msg instanceof DatagramPacket) { // Get packet and sender data DatagramPacket datagram = (DatagramPacket) msg; InetSocketAddress sender = datagram.sender(); RakNetPacket packet = new RakNetPacket(datagram); // If an exception happens it's because of this address this.causeAddress = sender; // Is the sender blocked? if (this.addressBlocked(sender.getAddress())) { BlockedAddress status = blocked.get(sender.getAddress()); if (status.getTime() <= BlockedAddress.PERMANENT_BLOCK) { return; // Permanently blocked }/*ww w .java 2 s. com*/ if (System.currentTimeMillis() - status.getStartTime() < status.getTime()) { return; // Time hasn't expired } this.unblockAddress(sender.getAddress()); } // Handle the packet and release the buffer server.handleMessage(packet, sender); datagram.content().readerIndex(0); // Reset position RakNetLogger.debug(loggerName, "Sent packet to server and reset Datagram buffer read position"); server.getListener().handleNettyMessage(datagram.content(), sender); datagram.content().release(); // No longer needed RakNetLogger.debug(loggerName, "Sent Datagram buffer to server and released it"); // No exceptions occurred, release the suspect this.causeAddress = null; } }
From source file:netty.protocol.udp.ChineseProverbClientHandler.java
License:Apache License
@Override protected void channelRead0(ChannelHandlerContext ctx, DatagramPacket msg) throws Exception { String response = msg.content().toString(CharsetUtil.UTF_8); if (response.startsWith(": ")) { System.out.println(response); ctx.close();/*ww w . j a v a2s. c o m*/ } }
From source file:netty.protocol.udp.ChineseProverbServerHandler.java
License:Apache License
@Override protected void channelRead0(ChannelHandlerContext ctx, DatagramPacket msg) throws Exception { String req = msg.content().toString(CharsetUtil.UTF_8); System.out.println(req);/*w ww. java 2 s.c om*/ if ("?".equals(req)) { ctx.writeAndFlush(new DatagramPacket( Unpooled.copiedBuffer(": " + nextQuote(), CharsetUtil.UTF_8), msg.sender())); } }
From source file:nz.co.fortytwo.signalk.server.CamelUdpNettyHandler.java
License:Open Source License
@Override protected void channelRead0(ChannelHandlerContext ctx, DatagramPacket packet) throws Exception { String request = packet.content().toString(CharsetUtil.UTF_8); if (logger.isDebugEnabled()) logger.debug("Sender " + packet.sender() + " sent request:" + request); if (!sessionList.inverse().containsKey(packet.sender())) { String session = UUID.randomUUID().toString(); String localAddress = ctx.channel().localAddress().toString(); String remoteAddress = ctx.channel().remoteAddress().toString(); SubscriptionManagerFactory.getInstance().add(session, session, outputType, localAddress, remoteAddress); sessionList.put(session, packet.sender()); if (logger.isDebugEnabled()) logger.debug("Added Sender " + packet.sender() + ", session:" + session); ctx.channel()// ww w. j a v a 2 s . c om .writeAndFlush(new DatagramPacket( Unpooled.copiedBuffer(Util.getWelcomeMsg().toString() + "\r\n", CharsetUtil.UTF_8), packet.sender())); } Map<String, Object> headers = getHeaders(sessionList.inverse().get(packet.sender())); producer.sendBodyAndHeaders(request, headers); }
From source file:org.apache.camel.component.netty4.codec.DatagramPacketDecoder.java
License:Apache License
@Override protected void decode(ChannelHandlerContext ctx, DatagramPacket msg, List<Object> out) throws Exception { // decode the DatagramPackage to AddressedEnvelope DefaultAddressedEnvelope<Object, InetSocketAddress> addressEvelop = new DefaultAddressedEnvelope<Object, InetSocketAddress>( msg.content().retain(), msg.recipient(), msg.sender()); out.add(addressEvelop);//from w w w . jav a 2s. c o m }
From source file:org.apache.directory.server.dhcp.netty.Dhcp6Handler.java
@Override protected void channelRead0(ChannelHandlerContext ctx, DatagramPacket msg) throws Exception { if (LOG.isDebugEnabled()) { LOG.debug("Incomming DHCP : {}, from: {}", ByteBufUtil.hexDump(msg.content()), msg.sender()); }//w w w .j a va 2 s.co m final Dhcp6Message incommingMsg; try { incommingMsg = dhcp6MessageDecoder.decode(msg.content().nioBuffer()); } catch (final Dhcp6Exception.UnknownMsgException e) { LOG.warn("Unknown DHCP message type: {}. Ignoring", ByteBufUtil.hexDump(msg.content()), e); return; } final Optional<Dhcp6Message> reply = dhcpService .getReplyFor(new Dhcp6RequestContext(msg.sender().getAddress()), incommingMsg); if (reply.isPresent()) { LOG.debug("Responding with message: {}", reply.get()); // TODO what size to allocate the buffer to ? ByteBuf buf = ctx.alloc().buffer(1024); ByteBuffer buffer = buf.nioBuffer(buf.writerIndex(), buf.writableBytes()); dhcp6MessageEncoder.encode(buffer, reply.get()); buffer.flip(); buf.writerIndex(buf.writerIndex() + buffer.remaining()); DatagramPacket packet = new DatagramPacket(buf, msg.sender()); ctx.write(packet); } else { LOG.warn("No response from DHCP service received for: {}. Ignoring.", incommingMsg); } }
From source file:org.apache.directory.server.dhcp.netty.DhcpHandler.java
@Override protected void channelRead0(ChannelHandlerContext ctx, DatagramPacket msg) throws Exception { DhcpMessage request = decoder.decode(msg.content().nioBuffer()); DhcpRequestContext context = interfaceManager.newRequestContext( (InetSocketAddress) ctx.channel().localAddress(), msg.sender(), msg.recipient(), request); if (context == null) { debug("IGNQUERY", msg.sender(), msg.recipient(), request); return;/* ww w . j a va 2 s . c o m*/ } // debug("READ", msg.sender(), msg.recipient(), request); MDCUtils.init(context, request); try { DhcpMessage reply = dhcpService.getReplyFor(context, request); if (reply == null) { debug("NOREPLY", msg.sender(), msg.recipient(), request); return; } InterfaceAddress localAddress = interfaceManager.getResponseInterface(request.getRelayAgentAddress(), request.getCurrentClientAddress(), msg.sender().getAddress(), reply); if (localAddress == null) { debug("NOIFACE", msg.recipient(), msg.sender(), reply); return; } debug("READ", msg.sender(), msg.recipient(), request); InetSocketAddress isa = DhcpInterfaceUtils.determineMessageDestination(request, reply, localAddress, msg.sender().getPort()); ByteBuf buf = ctx.alloc().buffer(1024); ByteBuffer buffer = buf.nioBuffer(buf.writerIndex(), buf.writableBytes()); encoder.encode(buffer, reply); buffer.flip(); buf.writerIndex(buf.writerIndex() + buffer.remaining()); DatagramPacket packet = new DatagramPacket(buf, isa); debug("WRITE", packet.sender(), packet.recipient(), reply); ctx.write(packet, ctx.voidPromise()); } finally { MDCUtils.fini(); } }
From source file:org.apache.kerby.kerberos.kdc.impl.NettyKdcUdpServerHandler.java
License:Apache License
@Override protected void channelRead0(ChannelHandlerContext channelHandlerContext, DatagramPacket datagramPacket) throws Exception { ByteBuf byteBuf = datagramPacket.content(); byte[] msgBytes = new byte[byteBuf.readableBytes()]; byteBuf.readBytes(msgBytes);//from ww w. ja v a 2s . c om ByteBuffer requestMessage = ByteBuffer.wrap(msgBytes); InetSocketAddress clientAddress = datagramPacket.sender(); boolean isTcp = false; try { ByteBuffer responseMessage = myKdcHandler.handleMessage(requestMessage, isTcp, clientAddress.getAddress()); channelHandlerContext .writeAndFlush(new DatagramPacket(Unpooled.wrappedBuffer(responseMessage), clientAddress)); } catch (Exception e) { LOG.error("Error occurred while processing request:" + e.getMessage()); } }
From source file:org.beykery.wormhole.WormRegistry.java
License:Apache License
/** * message//w w w. jav a2 s . c o m * * @param dp */ private void onMessage(final DatagramPacket dp) { this.workers.execute(new Runnable() { @Override public void run() { try { ByteBuf bb = dp.content(); int cmd = bb.readByte(); switch (cmd) { case 0://regist String name = readUtf(bb); String inner = readUtf(bb); InetSocketAddress sender = dp.sender(); WormRegistry.this.addEndpoint(new Endpoint(name, inner, sender)); break; case 1://check name = readUtf(bb); } } catch (Exception ex) { //do nothing } } private String readUtf(ByteBuf bb) throws UnsupportedEncodingException { int len = bb.readInt(); byte[] c = new byte[len]; bb.readBytes(c); return new String(c, "utf-8"); } }); }