Abstraction and base class for packet-based protocols. PacketPeer is an abstraction and base class for packet-based protocols (such as UDP). It provides an API for sending and receiving packets both as raw data or variables. This makes it easy to transfer data over a protocol, without having to encode data as low level bytes or having to worry about network ordering. Return the number of packets currently available in the ring-buffer. Get a raw packet. Return the error state of the last packet received (via [method get_packet] and [method get_var]). Get a Variant. Send a raw packet. Send a Variant as a packet. If [code]true[/code] the PacketPeer will allow encoding and decoding of object via [method get_var] and [method put_var]. [b]WARNING:[/b] Deserialized object can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats (remote code execution).