== Description ==
An ENet host for communicating with peers. On creation it will bind to a port on an address, unless otherwise specified, which will keep other applications from binding to the same port and address.

One can free the port by calling its destroy method; nil-ing the host object and calling collectgarbage() would work as well, since :destroy calls host:__gc internally, but this is cleaner:
<source lang="Lua">
local host = enet.host_create("*:6789")
host:destroy()
</source>

== Functions ==
{| class="wikitable"
!Function
!Description
|-
|[[enet.host:service | host:service]]
|Wait for [[enet.event | events]], send and receive any ready packets.
|-
|[[enet.host:check_events | host:check_events]]
|Checks for any queued [[enet.event | events]] and dispatches one if available.
|-
|[[enet.host:compress_with_range_coder | host:compress_with_range_coder]]
|Toggles an adaptive order-2 PPM range coder for the transmitted data of all peers.
|-
|[[enet.host:connect | host:connect]]
|Connects a host to a remote host. Returns [[enet.peer | peer]] object associated with remote host.
|-
|[[enet.host:flush | host:flush]]
|Sends any queued packets.
|-
|[[enet.host:broadcast | host:broadcast]]
|Queues a packet to be sent to all connected peers.
|-
|[[enet.host:channel_limit | host:channel_limit]]
|Sets the maximum number of channels allowed.
|-
|[[enet.host:bandwidth_limit | host:bandwidth_limit]]
|Sets the bandwidth limits of the host in bytes/sec.
|-
|[[enet.host:get_socket_address | host:get_socket_address]]
|Returns a [[string]] that describes the socket address of the given host.
|-
|[[enet.host:get_socket_address | host:socket_get_address]]
|Deprecated version of host:get_socket_address.
|-
|[[enet.host:destroy | host:destroy]]
|Destroys the host, freeing any bound ports and addresses. Alias for the host:__gc method.
|-
|[[enet.host:total_sent_data | host:total_sent_data]]
|Returns the [[number]] of bytes that were sent through the given host.
|-
|[[enet.host:total_received_data | host:total_received_data]]
|Returns the [[number]] of bytes that were received by the given host.
|-
|[[enet.host:service_time | host:service_time]]
|Returns the timestamp of the last call to [[enet.host:service | host:service()]] or [[enet.host:flush | host:flush()]].
|-
|[[enet.host:peer_count | host:peer_count]]
|Returns the number of peers that are allocated for the given host.
|-
|[[enet.host:get_peer | host:get_peer]]
|Returns the connected [[enet.peer | peer]] at the specified index (starting at 1).
|-
|[[enet.host:destroy | host:__gc]]
|Destroys the host, freeing any bound ports and addresses.
|}

== See Also ==
* [[parent::lua-enet]]
* [[enet:host_create]]
* [[enet.event]]
* [[enet.peer]]