HTT Documentation

htt.tcp

  • AEndpoint

    Value representing an IP address and port

    Definition
    userdata
  • TStream
    Methods
    • Fnrecv(htt.tcp.Buffer, integer) → integer?, string?

      Receive data from TCP stream

      Parameters
      • buf: htt.tcp.Buffer
        • Buffer of data to send
      • n: integer
        • if provided, read exactly `n` bytes
      Returns
      • integer?
        • number of bytes sent
      • string?
        • error message, on error
    • Fnrecv_at_least(htt.tcp.Buffer, integer) → integer?, string?

      Receive at least N bytes from TCP stream

      Parameters
      • buf: htt.tcp.Buffer
        • Buffer of data to send
      • n: integer
        • read at least this many bytes
      Returns
      • integer?
        • number of bytes sent
      • string?
        • error message, on error
    • Fnsend(htt.tcp.Buffer, integer?) → string?

      Send bytes over TCP stream

      Parameters
      • buffer: htt.tcp.Buffer
        • Buffer
      • n: integer?
        • if set, send the first n bytes, not entire buffer
      Returns
      • error: string?
        • error message, if any
  • TBuffer
    Methods
    • Fnremaining() → integer?

      Return number of bytes between current position and end of buffer

      NOTE: the position is modified by `seek()` and reported by `tell()`

      Returns
      • integer?
        • Number of bytes from current position to end of buffer
    • Fnsize() → integer?

      Return current size of the buffer in bytes.

      NOTE: Use setSize to grow or shrink the buffer.

      Returns
      • integer?
        • Size of buffer in bytes
    • Fnset_size(integer) → integer?

      Return current size of the buffer in bytes.

      NOTE: Use setSize to grow or shrink the buffer.

      Parameters
      • N: integer
      Returns
      • integer?
        • Size of buffer in bytes
    • Fnseek(integer) → nil

      Sets the buffer position to N bytes from the start

      Parameters
      • N: integer
        • The byte offset to seek to
      Returns
      No return value
    • Fntell() → integer

      Reports the offset, in bytes, from the start of the buffer.

      Returns
      • position: integer
        • offset, in bytes, from the buffer's start
    • Fnwrite_string(string) → nil

      Write string to buffer.

      Raises an error if writing the string would go out-of-bounds.

      Parameters
      • str: string
        • the string to write
      Returns
      No return value
    • Fnwrite_bool(boolean) → nil

      Write boolean to buffer.

      Raises an error if writing the boolean would go out-of-bounds.

      Parameters
      • val: boolean
        • the value to write
      Returns
      No return value
    • Fnread_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.

      Parameters
      • len: integer
        • length, in bytes, of string
      Returns
      • string
        • the string value
    • Fnread_bool() → boolean

      Read boolean value from buffer

      Reads a full byte, anything but 0 is treated as true.

      Returns
      • boolean
        • the boolean value
    • Fnwrite_i8be(integer) → nil

      Write signed 8 bits integer to buffer in big-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_i16be(integer) → nil

      Write signed 16 bits integer to buffer in big-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_i32be(integer) → nil

      Write signed 32 bits integer to buffer in big-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_i64be(integer) → nil

      Write signed 64 bits integer to buffer in big-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_i8le(integer) → nil

      Write signed 8 bits integer to buffer in little-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_i16le(integer) → nil

      Write signed 16 bits integer to buffer in little-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_i32le(integer) → nil

      Write signed 32 bits integer to buffer in little-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_i64le(integer) → nil

      Write signed 64 bits integer to buffer in little-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_i8(integer) → nil

      Write signed 8 bits integer to buffer

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_i16(integer) → nil

      Write signed 16 bits integer to buffer

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_i32(integer) → nil

      Write signed 32 bits integer to buffer

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_i64(integer) → nil

      Write signed 64 bits integer to buffer

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_u8be(integer) → nil

      Write unsigned 8 bits integer to buffer in big-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_u16be(integer) → nil

      Write unsigned 16 bits integer to buffer in big-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_u32be(integer) → nil

      Write unsigned 32 bits integer to buffer in big-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_u64be(integer) → nil

      Write unsigned 64 bits integer to buffer in big-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_u8le(integer) → nil

      Write unsigned 8 bits integer to buffer in little-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_u16le(integer) → nil

      Write unsigned 16 bits integer to buffer in little-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_u32le(integer) → nil

      Write unsigned 32 bits integer to buffer in little-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_u64le(integer) → nil

      Write unsigned 64 bits integer to buffer in little-endian order

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_u8(integer) → nil

      Write unsigned 8 bits integer to buffer

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_u16(integer) → nil

      Write unsigned 16 bits integer to buffer

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_u32(integer) → nil

      Write unsigned 32 bits integer to buffer

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnwrite_u64(integer) → nil

      Write unsigned 64 bits integer to buffer

      Raises error if writing value would be out-of-bounds

      Parameters
      • val: integer
        • value to write
      Returns
      No return value
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_i8() → integer

      Reads a signed 8 bits integer from buffer

      Raises error if reading value would be out-of-bounds

      Returns
      • integer
        • the integer value
    • Fnread_i16() → integer

      Reads a signed 16 bits integer from buffer

      Raises error if reading value would be out-of-bounds

      Returns
      • integer
        • the integer value
    • Fnread_i32() → integer

      Reads a signed 32 bits integer from buffer

      Raises error if reading value would be out-of-bounds

      Returns
      • integer
        • the integer value
    • Fnread_i64() → integer

      Reads a signed 64 bits integer from buffer

      Raises error if reading value would be out-of-bounds

      Returns
      • integer
        • the integer value
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_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

      Returns
      • integer
        • the integer value converted to native byte order
    • Fnread_u8() → integer

      Reads a unsigned 8 bits integer from buffer

      Raises error if reading value would be out-of-bounds

      Returns
      • integer
        • the integer value
    • Fnread_u16() → integer

      Reads a unsigned 16 bits integer from buffer

      Raises error if reading value would be out-of-bounds

      Returns
      • integer
        • the integer value
    • Fnread_u32() → integer

      Reads a unsigned 32 bits integer from buffer

      Raises error if reading value would be out-of-bounds

      Returns
      • integer
        • the integer value
    • Fnread_u64() → integer

      Reads a unsigned 64 bits integer from buffer

      Raises error if reading value would be out-of-bounds

      Returns
      • integer
        • the integer value
  • Fnbuffer(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)`.

    Parameters
    • size: integer
      • initial size, in bytes, of buffer
    Returns
    • buf: htt.tcp.Buffer
      • the new buffer object
    • err: string?
      • error message, if any
  • Fnaddr(string, integer) → Endpoint, string

    Returns an address structure which can be passed to `connect`.

    Parameters
    • ip: string
      • the IPv4/IPv6 address
    • port: integer
      • the port of the server
    Returns
    • Endpoint
      • reference to the endpoint (IP and port), if successful
    • string
      • error message, if any
  • Fnconnect(Endpoint) → htt.tcp.Stream, string

    Connect to a TCP server at the IP-address and port specified by `endpoint`

    Parameters
    • endpoint: Endpoint
      • structure representing the endpoint
    Returns
    • stream: htt.tcp.Stream
      • stream with which to communicate with the server.
    • error: string
      • error message, if any occurred.