Value representing an IP address and port
recv(htt.tcp.Buffer, integer) → integer?, string?
Receive data from TCP stream
recv_at_least(htt.tcp.Buffer, integer) → integer?, string?
Receive at least N bytes from TCP stream
send(htt.tcp.Buffer, integer?) → string?
Send bytes over TCP stream
remaining() → integer?
Return number of bytes between current position and end of buffer
NOTE: the position is modified by `seek()` and reported by `tell()`
size() → integer?
Return current size of the buffer in bytes.
NOTE: Use setSize to grow or shrink the buffer.
set_size(integer) → integer?
Return current size of the buffer in bytes.
NOTE: Use setSize to grow or shrink the buffer.
seek(integer) → nil
Sets the buffer position to N bytes from the start
tell() → integer
Reports the offset, in bytes, from the start of the buffer.
write_string(string) → nil
Write string to buffer.
Raises an error if writing the string would go out-of-bounds.
write_bool(boolean) → nil
Write boolean to buffer.
Raises an error if writing the boolean would go out-of-bounds.
read_string(integer) → string
Read `len` bytes from buffer and return it as a string.
Raises an error if reading the string would go out-of-bounds.
read_bool() → boolean
Read boolean value from buffer
Reads a full byte, anything but 0 is treated as true.
write_i8be(integer) → nil
Write signed 8 bits integer to buffer in big-endian order
Raises error if writing value would be out-of-bounds
write_i16be(integer) → nil
Write signed 16 bits integer to buffer in big-endian order
Raises error if writing value would be out-of-bounds
write_i32be(integer) → nil
Write signed 32 bits integer to buffer in big-endian order
Raises error if writing value would be out-of-bounds
write_i64be(integer) → nil
Write signed 64 bits integer to buffer in big-endian order
Raises error if writing value would be out-of-bounds
write_i8le(integer) → nil
Write signed 8 bits integer to buffer in little-endian order
Raises error if writing value would be out-of-bounds
write_i16le(integer) → nil
Write signed 16 bits integer to buffer in little-endian order
Raises error if writing value would be out-of-bounds
write_i32le(integer) → nil
Write signed 32 bits integer to buffer in little-endian order
Raises error if writing value would be out-of-bounds
write_i64le(integer) → nil
Write signed 64 bits integer to buffer in little-endian order
Raises error if writing value would be out-of-bounds
write_i8(integer) → nil
Write signed 8 bits integer to buffer
Raises error if writing value would be out-of-bounds
write_i16(integer) → nil
Write signed 16 bits integer to buffer
Raises error if writing value would be out-of-bounds
write_i32(integer) → nil
Write signed 32 bits integer to buffer
Raises error if writing value would be out-of-bounds
write_i64(integer) → nil
Write signed 64 bits integer to buffer
Raises error if writing value would be out-of-bounds
write_u8be(integer) → nil
Write unsigned 8 bits integer to buffer in big-endian order
Raises error if writing value would be out-of-bounds
write_u16be(integer) → nil
Write unsigned 16 bits integer to buffer in big-endian order
Raises error if writing value would be out-of-bounds
write_u32be(integer) → nil
Write unsigned 32 bits integer to buffer in big-endian order
Raises error if writing value would be out-of-bounds
write_u64be(integer) → nil
Write unsigned 64 bits integer to buffer in big-endian order
Raises error if writing value would be out-of-bounds
write_u8le(integer) → nil
Write unsigned 8 bits integer to buffer in little-endian order
Raises error if writing value would be out-of-bounds
write_u16le(integer) → nil
Write unsigned 16 bits integer to buffer in little-endian order
Raises error if writing value would be out-of-bounds
write_u32le(integer) → nil
Write unsigned 32 bits integer to buffer in little-endian order
Raises error if writing value would be out-of-bounds
write_u64le(integer) → nil
Write unsigned 64 bits integer to buffer in little-endian order
Raises error if writing value would be out-of-bounds
write_u8(integer) → nil
Write unsigned 8 bits integer to buffer
Raises error if writing value would be out-of-bounds
write_u16(integer) → nil
Write unsigned 16 bits integer to buffer
Raises error if writing value would be out-of-bounds
write_u32(integer) → nil
Write unsigned 32 bits integer to buffer
Raises error if writing value would be out-of-bounds
write_u64(integer) → nil
Write unsigned 64 bits integer to buffer
Raises error if writing value would be out-of-bounds
read_i8be() → integer
Reads a signed 8 bits integer from buffer, converts from big-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_i16be() → integer
Reads a signed 16 bits integer from buffer, converts from big-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_i32be() → integer
Reads a signed 32 bits integer from buffer, converts from big-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_i64be() → integer
Reads a signed 64 bits integer from buffer, converts from big-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_i8le() → integer
Reads a signed 8 bits integer from buffer, converts from little-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_i16le() → integer
Reads a signed 16 bits integer from buffer, converts from little-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_i32le() → integer
Reads a signed 32 bits integer from buffer, converts from little-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_i64le() → integer
Reads a signed 64 bits integer from buffer, converts from little-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_i8() → integer
Reads a signed 8 bits integer from buffer
Raises error if reading value would be out-of-bounds
read_i16() → integer
Reads a signed 16 bits integer from buffer
Raises error if reading value would be out-of-bounds
read_i32() → integer
Reads a signed 32 bits integer from buffer
Raises error if reading value would be out-of-bounds
read_i64() → integer
Reads a signed 64 bits integer from buffer
Raises error if reading value would be out-of-bounds
read_u8be() → integer
Reads a unsigned 8 bits integer from buffer, converts from big-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_u16be() → integer
Reads a unsigned 16 bits integer from buffer, converts from big-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_u32be() → integer
Reads a unsigned 32 bits integer from buffer, converts from big-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_u64be() → integer
Reads a unsigned 64 bits integer from buffer, converts from big-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_u8le() → integer
Reads a unsigned 8 bits integer from buffer, converts from little-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_u16le() → integer
Reads a unsigned 16 bits integer from buffer, converts from little-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_u32le() → integer
Reads a unsigned 32 bits integer from buffer, converts from little-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_u64le() → integer
Reads a unsigned 64 bits integer from buffer, converts from little-endian- to native byte-order
Raises error if reading value would be out-of-bounds
read_u8() → integer
Reads a unsigned 8 bits integer from buffer
Raises error if reading value would be out-of-bounds
read_u16() → integer
Reads a unsigned 16 bits integer from buffer
Raises error if reading value would be out-of-bounds
read_u32() → integer
Reads a unsigned 32 bits integer from buffer
Raises error if reading value would be out-of-bounds
read_u64() → integer
Reads a unsigned 64 bits integer from buffer
Raises error if reading value would be out-of-bounds
buffer(integer) → htt.tcp.Buffer, string?
Create a new buffer object
Buffers can grow and shrink, but only in response to explicit `set_size` calls. Otherwise, attempting to read- or write past buffer bounds will raise an error.
A buffer maintains a position, which marks the start of every read- and write operation. Every read- and write- operation will appropriately advance the position. To get the position, call `tell()`, which returns some value between 0 and the buffer's size. You can also manually change the position by calling `seek(N)`.
addr(string, integer) → Endpoint, string
Returns an address structure which can be passed to `connect`.
connect(Endpoint) → htt.tcp.Stream, string
Connect to a TCP server at the IP-address and port specified by `endpoint`