Struct StreamPeer

Abstraction and base class for stream-based protocols.

struct StreamPeer ;

StreamPeer is an abstraction and base class for stream-based protocols (such as TCP or UNIX sockets). It provides an API for sending and receiving data through streams as raw data or strings.

Properties

NameTypeDescription
bigEndian[get, set] boolIf true, this StreamPeer will using big-endian format for encoding and decoding.

Methods

NameDescription
get16 Gets a signed 16-bit value from the stream.
get32 Gets a signed 32-bit value from the stream.
get64 Gets a signed 64-bit value from the stream.
get8 Gets a signed byte from the stream.
getAvailableBytes Returns the amount of bytes this StreamPeer has available.
getData Returns a chunk data with the received bytes. The amount of bytes to be received can be requested in the bytes argument. If not enough bytes are available, the function will block until the desired amount is received. This function returns two values, an @GlobalScope.error code and a data array.
getDouble Gets a double-precision float from the stream.
getFloat Gets a single-precision float from the stream.
getPartialData Returns a chunk data with the received bytes. The amount of bytes to be received can be requested in the "bytes" argument. If not enough bytes are available, the function will return how many were actually received. This function returns two values, an @GlobalScope.error code, and a data array.
getString Gets a string with byte-length bytes from the stream. If bytes is negative (default) the length will be read from the stream using the reverse process of putString.
getU16 Gets an unsigned 16-bit value from the stream.
getU32 Gets an unsigned 32-bit value from the stream.
getU64 Gets an unsigned 64-bit value from the stream.
getU8 Gets an unsigned byte from the stream.
getUtf8String Gets an UTF-8 string with byte-length bytes from the stream (this decodes the string sent as UTF-8). If bytes is negative (default) the length will be read from the stream using the reverse process of putUtf8String.
getVar Gets a Variant from the stream. If allow_objects is true, decoding objects is allowed. Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.
isBigEndianEnabled
put16 Puts a signed 16-bit value into the stream.
put32 Puts a signed 32-bit value into the stream.
put64 Puts a signed 64-bit value into the stream.
put8 Puts a signed byte into the stream.
putData Sends a chunk of data through the connection, blocking if necessary until the data is done sending. This function returns an @GlobalScope.error code.
putDouble Puts a double-precision float into the stream.
putFloat Puts a single-precision float into the stream.
putPartialData Sends a chunk of data through the connection. If all the data could not be sent at once, only part of it will. This function returns two values, an @GlobalScope.error code and an integer, describing how much data was actually sent.
putString Puts a zero-terminated ASCII string into the stream prepended by a 32-bit unsigned integer representing its size.
putU16 Puts an unsigned 16-bit value into the stream.
putU32 Puts an unsigned 32-bit value into the stream.
putU64 Puts an unsigned 64-bit value into the stream.
putU8 Puts an unsigned byte into the stream.
putUtf8String Puts a zero-terminated UTF-8 string into the stream prepended by a 32 bits unsigned integer representing its size.
putVar Puts a Variant into the stream. If full_objects is true encoding objects is allowed (and can potentially include code).
setBigEndian