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. Returns the number of packets currently available in the ring-buffer. Get a raw packet. Returns the error state of the last packet received (via [method get_packet] and [method get_var]). Get a Variant. When [code]allow_objects[/code] (or [member allow_object_decoding]) is [code]true[/code] decoding objects is allowed. [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). Send a raw packet. Send a Variant as a packet. When [code]full_objects[/code] (or [member allow_object_decoding]) is [code]true[/code] encoding objects is allowed (and can potentially include code). Deprecated. Use [code]get_var[/code] and [code]put_var[/code] parameters instead. 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).