List of usage examples for io.netty.channel.socket DatagramPacket DatagramPacket
public DatagramPacket(ByteBuf data, InetSocketAddress recipient, InetSocketAddress sender)
From source file:com.streamsets.pipeline.lib.udp.TestUDPMessage.java
License:Apache License
@Test public void testMessage() { InetSocketAddress recipient = new InetSocketAddress("127.0.0.1", 2000); InetSocketAddress sender = new InetSocketAddress("127.0.0.1", 3000); ByteBuf buf = Mockito.mock(ByteBuf.class); DatagramPacket datagram = new DatagramPacket(buf, recipient, sender); UDPMessage message = new UDPMessage(UDPConstants.COLLECTD, 1, datagram); Assert.assertEquals(UDPConstants.COLLECTD, message.getType()); Assert.assertEquals(1, message.getReceived()); Assert.assertSame(datagram, message.getDatagram()); Assert.assertNotNull(message.toString()); }
From source file:com.streamsets.pipeline.lib.udp.TestUDPMessageSerialization.java
License:Apache License
private static UDPMessage createUDPMessage(int size) { InetSocketAddress recipient = new InetSocketAddress("127.0.0.1", 2000); InetSocketAddress sender = new InetSocketAddress("127.0.0.1", 3000); byte[] arr = new byte[size]; for (int i = 0; i < size; i++) { arr[i] = (byte) (i % 256); }//from www. j a va 2 s. c o m ByteBuf buffer = Unpooled.wrappedBuffer(arr); DatagramPacket datagram = new DatagramPacket(buffer, recipient, sender); return new UDPMessage(UDPConstants.NETFLOW, 1, datagram); }
From source file:com.streamsets.pipeline.lib.udp.UDPMessageDeserializer.java
License:Apache License
public UDPMessage deserialize(byte[] buffer) throws IOException { ByteArrayInputStream bais = new ByteArrayInputStream(buffer); ObjectInputStream ois = new ObjectInputStream(bais); int version = ois.readInt(); if (version == UDPConstants.UDP_MESSAGE_VERSION) { int type = ois.readInt(); long received = ois.readLong(); String address = ois.readUTF(); int port = ois.readInt(); InetSocketAddress sender = new InetSocketAddress(address, port); address = ois.readUTF();/*from w w w . ja v a2s. c o m*/ port = ois.readInt(); InetSocketAddress receiver = new InetSocketAddress(address, port); int dataLen = ois.readInt(); byte[] data = new byte[dataLen]; ois.readFully(data); ois.close(); ByteBuf byteBuf = Unpooled.wrappedBuffer(data); DatagramPacket datagram = new DatagramPacket(byteBuf, receiver, sender); return new UDPMessage(type, received, datagram); } else { throw new IOException(Utils.format("Unsupported version '{}'", version)); } }
From source file:com.streamsets.pipeline.lib.util.UDPTestUtil.java
License:Apache License
public static byte[] getUDPData(int type, byte[] data) throws IOException { InetSocketAddress recipient = new InetSocketAddress("127.0.0.1", 2000); InetSocketAddress sender = new InetSocketAddress("127.0.0.1", 3000); ByteBuf buffer = Unpooled.wrappedBuffer(data); DatagramPacket datagram = new DatagramPacket(buffer, recipient, sender); UDPMessage message = new UDPMessage(type, 1, datagram); UDPMessageSerializer serializer = new UDPMessageSerializer(); return serializer.serialize(message); }
From source file:com.streamsets.pipeline.stage.origin.udptokafka.TestKafkaUDPConsumer.java
License:Apache License
private static DatagramPacket createDatagramPackage(int size) { InetSocketAddress recipient = new InetSocketAddress("127.0.0.1", 2000); InetSocketAddress sender = new InetSocketAddress("127.0.0.1", 3000); byte[] arr = new byte[size]; for (int i = 0; i < size; i++) { arr[i] = (byte) (i % 256); }//from www . j a va 2s .c o m ByteBuf buffer = Unpooled.wrappedBuffer(arr); return new DatagramPacket(buffer, recipient, sender); }
From source file:com.whizzosoftware.hobson.ssdp.SSDPPlugin.java
License:Open Source License
public void sendDiscoveryPacket() { try {//from w w w. j a v a2 s . c om if (localChannel != null) { logger.debug("Sending SSDP discovery packet"); byte[] disco = SSDPPacket.createSearchRequest().toString().getBytes(); ByteBuf buf = Unpooled.copiedBuffer(disco); localChannel.writeAndFlush(new DatagramPacket(buf, groupAddress, localAddress)).sync(); } } catch (Throwable e) { e.printStackTrace(); } }
From source file:com.whizzosoftware.hobson.ssdp.SSDPPlugin.java
License:Open Source License
public void sendDiscoveryResponse(InetSocketAddress address, DeviceAdvertisement da) throws IOException { try {//from w w w .j a v a 2 s . c om if (localChannel != null) { String data = SSDPPacket.createSearchResponse(da.getUri(), da.getId(), "urn").toString(); logger.trace("Sending SSDP search response to {}: {}", address, data); ByteBuf buf = Unpooled.copiedBuffer(data.getBytes()); localChannel.writeAndFlush(new DatagramPacket(buf, address, localAddress)).sync(); } } catch (InterruptedException e) { e.printStackTrace(); } }
From source file:dorkbox.network.pipeline.discovery.BroadcastServer.java
License:Apache License
/** * @return true if the broadcast was responded to, false if it was not a broadcast (and there was no response) *//* ww w.j a va 2 s. c o m*/ public boolean isDiscoveryRequest(final Channel channel, ByteBuf byteBuf, final InetSocketAddress localAddress, InetSocketAddress remoteAddress) { if (byteBuf.readableBytes() == 1) { // this is a BROADCAST discovery event. Don't read the byte unless it is... if (byteBuf.getByte(0) == MagicBytes.broadcastID) { byteBuf.readByte(); // read the byte to consume it (now that we verified it is a broadcast byte) // absolutely MUST send packet > 0 across, otherwise netty will think it failed to write to the socket, and keep trying. // (this bug was fixed by netty, however we are keeping this code) ByteBuf directBuffer = channel.alloc().ioBuffer(bufferSize); directBuffer.writeByte(MagicBytes.broadcastResponseID); // now output the port information for TCP/UDP so the broadcast client knows which port to connect to // either it will be TCP or UDP, or BOTH int enabledFlag = 0; if (tcpPort > 0) { enabledFlag |= MagicBytes.HAS_TCP; } if (udpPort > 0) { enabledFlag |= MagicBytes.HAS_UDP; } directBuffer.writeByte(enabledFlag); // TCP is always first if (tcpPort > 0) { directBuffer.writeShort(tcpPort); } if (udpPort > 0) { directBuffer.writeShort(udpPort); } channel.writeAndFlush(new DatagramPacket(directBuffer, remoteAddress, localAddress)); logger.info("Responded to host discovery from [{}]", EndPoint.getHostDetails(remoteAddress)); byteBuf.release(); return true; } } return false; }
From source file:org.codice.alliance.video.stream.mpegts.netty.RawUdpDataToMTSPacketDecoderTest.java
License:Open Source License
/** * Split an array of bytes into datagram packets. * * @param bytes payload data// ww w.jav a 2 s .c o m * @return list of datagrams */ private List<DatagramPacket> toDatagrams(byte[] bytes) throws UnknownHostException { int datagramSize = 1500; List<DatagramPacket> datagrams = new LinkedList<>(); byte[] tmp = bytes; while (tmp.length > datagramSize) { byte[] subarray = ArrayUtils.subarray(tmp, 0, datagramSize); datagrams.add(new DatagramPacket(Unpooled.wrappedBuffer(subarray), null, new InetSocketAddress(InetAddress.getLocalHost(), 50000))); tmp = ArrayUtils.subarray(tmp, datagramSize, tmp.length); } if (tmp.length > 0) { datagrams.add(new DatagramPacket(Unpooled.wrappedBuffer(tmp), null, new InetSocketAddress(InetAddress.getLocalHost(), 50000))); } return datagrams; }
From source file:org.opendaylight.capwap.dtls.DtlsEngine.java
License:Open Source License
public ArrayList<DatagramPacket> read(DatagramPacket msg) throws InterruptedException, ExecutionException, IOException { log.trace("DtlsEngine read " + msg); // add to queue irrespective of whether initialized or not; // this way the protocol handshake can retrieve them rawTransport.enqueue(msg);//from ww w. j av a 2s . c o m ArrayList<DatagramPacket> packets = new ArrayList<>(); if (encTransport != null) { byte buf[] = new byte[encTransport.getReceiveLimit()]; while (rawTransport.hasPackets()) { log.trace("before enctransport receive"); int bytesRead = encTransport.receive(buf, 0, buf.length, 100); log.trace("after enctransport receive"); if (bytesRead > 0) { packets.add(new DatagramPacket(Unpooled.copiedBuffer(buf, 0, bytesRead), null, rawTransport.getRemoteAddress())); } } } return packets; }