The UDP packet class facilitates handling packet data through a set of properties and methods designed for reading, writing, and managing byte arrays. It provides access to metadata such as the originating host, port, and packet length. The index property tracks the current position in the byte array, which is automatically updated after each read or write operation.
Methods include the ability to read and write various data types such as bytes, integers, shorts, and UTF-8 strings. Additionally, the class supports extracting the entire byte array of the packet and encoding custom data for transmission. Advanced use cases involve combining these capabilities for constructing or parsing complex packet structures.
Properties Summarized
Type
Name
Summary
Methods Summarized
Type
Name
Summary
Properties Detailed
index
Returns the current position in the byte array of the packet. The next read/write operation will occur at this position.
This is a 0 based index.
var packet;while (packet =plugins.udp.getReceivedPacket()) {application.output('packet received from '+packet.getHost() +':'+packet.getPort());if (packet.getLength() >0) {application.output('an int is: '+packet.readInt());application.output('moved to index: '+packet.index);application.output('a short is: '+packet.readShort());application.output('moved to index: '+packet.index);application.output('a byte is: '+packet.readByte());application.output('moved to index: '+packet.index);application.output('a byte is: '+packet.readByte());application.output('moved to index: '+packet.index); }else {application.output('end of communication.');break; }}
Methods Detailed
getByteArray()
Returns the content of the package into a byte array.
var packet;while (packet =plugins.udp.getReceivedPacket()) {application.output('packet received from '+packet.getHost() +':'+packet.getPort());if (packet.getLength() >0) {var bytes =packet.getByteArray();application.output('received a packet of length: '+bytes.length);for (var i=0; i<bytes.length; i++)application.output(bytes[i]); }else {application.output('end of communication.');break; }}
getHost()
Returns the name of the host that sent the packet.
var packet;while (packet =plugins.udp.getReceivedPacket()) {application.output('packet received from '+packet.getHost() +':'+packet.getPort());if (packet.getLength() >0) {application.output('message is: '+packet.readUTF()); }else {application.output('end of communication.');break; }}
var packet;while (packet =plugins.udp.getReceivedPacket()) {application.output('packet received from '+packet.getHost() +':'+packet.getPort());if (packet.getLength() >0) {application.output('message is: '+packet.readUTF()); }else {application.output('end of communication.');break; }}
getPort()
Returns the port where the packet originated from.
var packet;while (packet =plugins.udp.getReceivedPacket()) {application.output('packet received from '+packet.getHost() +':'+packet.getPort());if (packet.getLength() >0) {application.output('message is: '+packet.readUTF()); }else {application.output('end of communication.');break; }}
readByte()
Reads an 8 bits byte value from the packet, starting from the current index. Advances the index with one position.
var packet;while (packet =plugins.udp.getReceivedPacket()) {application.output('packet received from '+packet.getHost() +':'+packet.getPort());if (packet.getLength() >0) {application.output('an int is: '+packet.readInt());application.output('moved to index: '+packet.index);application.output('a short is: '+packet.readShort());application.output('moved to index: '+packet.index);application.output('a byte is: '+packet.readByte());application.output('moved to index: '+packet.index);application.output('a byte is: '+packet.readByte());application.output('moved to index: '+packet.index); }else {application.output('end of communication.');break; }}
readInt()
Reads a 32 bits int value from the packet, starting from the current index. Advances the index with 4 positions.
var packet;while (packet =plugins.udp.getReceivedPacket()) {application.output('packet received from '+packet.getHost() +':'+packet.getPort());if (packet.getLength() >0) {application.output('an int is: '+packet.readInt());application.output('moved to index: '+packet.index);application.output('a short is: '+packet.readShort());application.output('moved to index: '+packet.index);application.output('a byte is: '+packet.readByte());application.output('moved to index: '+packet.index);application.output('a byte is: '+packet.readByte());application.output('moved to index: '+packet.index); }else {application.output('end of communication.');break; }}
readShort()
Reads a 32 bits short value from the packet, starting from the current index. Advances the index with 2 positions.
var packet;while (packet =plugins.udp.getReceivedPacket()) {application.output('packet received from '+packet.getHost() +':'+packet.getPort());if (packet.getLength() >0) {application.output('an int is: '+packet.readInt());application.output('moved to index: '+packet.index);application.output('a short is: '+packet.readShort());application.output('moved to index: '+packet.index);application.output('a byte is: '+packet.readByte());application.output('moved to index: '+packet.index);application.output('a byte is: '+packet.readByte());application.output('moved to index: '+packet.index); }else {application.output('end of communication.');break; }}
readUTF()
Reads a UTF-8 string from the packet, starting from the current index. If an argument is specified, then it represents the length (in UTF-8 encoded bytes, not characters) of the string to read. If no argument is specified, then first a 32 bits (4 byte) int is read from the packet and that will be the byte length of the string. Advances the index with a number of positions that depends on the length of the read string.
var packet;while (packet =plugins.udp.getReceivedPacket()) {application.output('packet received from '+packet.getHost() +':'+packet.getPort());if (packet.getLength() >0) {application.output('message is: '+packet.readUTF()); }else {application.output('end of communication.');break; }}
readUTF(length)
Reads a UTF-8 string from the packet, starting from the current index. If an argument is specified, then it represents the length (in UTF-8 encoded bytes, not characters) of the string to read. If no argument is specified, then first a 32 bits (4 byte) int is read from the packet and that will be the byte length of the string. Advances the index with a number of positions that depends on the length of the read string.
var packet;while (packet =plugins.udp.getReceivedPacket()) {application.output('packet received from '+packet.getHost() +':'+packet.getPort());if (packet.getLength() >0) {application.output('message is: '+packet.readUTF()); }else {application.output('end of communication.');break; }}
writeByte(number)
Writes one byte into the packet, at the current index. The index is advanced with one position.
Writes an array of bytes into the packet, at the current index. The index is advanced with a number of positions equal to the length of the written array.
Writes an UTF-8 encoded string into the packet, at the current index. First the length of the string is written on 4 bytes, then the string is written. The index is advanced with a number of positions equal to the length of the string plus 4.