lua-enet

Available since LÖVE 0.9.0
This module is not supported in earlier versions.


Official documentation for lua-enet is available here. ENet's features are listed on its homepage. The official documentation may have typos. The documentation on this wiki reflects Löve's implementation, meaning it should be safe to follow what's written here.

lua-enet is simply some Lua bindings for ENet.

ENet's purpose is to provide a relatively thin, simple and robust network communication layer for games on top of UDP (User Datagram Protocol).The primary feature it provides is optional reliable, in-order delivery of packets.

ENet omits certain higher level networking features such as authentication, lobbying, server discovery, encryption, or other similar tasks that are particularly application specific so that the library remains flexible, portable, and easily embeddable.

Types

Type Description
host An ENet host for communicating with peers.
peer An ENet peer which data packets may be sent or received from.
event A simple table containing information on an event.

Functions

Function Description
host_create Returns a new host.
linked_version Returns the included ENet's version string.

Examples

server.lua

-- server.lua
require "enet"
local host = enet.host_create("localhost:6789")
while true do
  local event = host:service(100)
  while event do
    if event.type == "receive" then
      print("Got message: ", event.data, event.peer)
      event.peer:send( "pong" )
    elseif event.type == "connect" then
      print(event.peer, "connected.")
    elseif event.type == "disconnect" then
      print(event.peer, "disconnected.")
    end
    event = host:service()
  end
end

client.lua

-- client.lua
require "enet"
local host = enet.host_create()
local server = host:connect("localhost:6789")
while true do
  local event = host:service(100)
  while event do
    if event.type == "receive" then
      print("Got message: ", event.data, event.peer)
      event.peer:send( "ping" )
    elseif event.type == "connect" then
      print(event.peer, "connected.")
      event.peer:send( "ping" )
    elseif event.type == "disconnect" then
      print(event.peer, "disconnected.")
    end
    event = host:service()
  end
end

See Also


enet.host create
  • References/Game Development/LÖVE/love/Third-party modules/lua-enet

enet.host create Returns a new host. All arguments are optional

2025-01-10 15:47:30
enet.peer:receive
  • References/Game Development/LÖVE/love/Third-party modules/lua-enet

enet.peer:receive Attempts to dequeue an incoming packet for this

2025-01-10 15:47:30
enet.host:bandwidth limit
  • References/Game Development/LÖVE/love/Third-party modules/lua-enet

enet.host:bandwidth limit Sets the bandwidth limits of the host

2025-01-10 15:47:30
enet.host:destroy
  • References/Game Development/LÖVE/love/Third-party modules/lua-enet

enet.host:destroy Destroys the host structure and closes all

2025-01-10 15:47:30
enet.peer:throttle configure
  • References/Game Development/LÖVE/love/Third-party modules/lua-enet

enet.peer:throttle configure Changes the probability at which unreliable packets should not be dropped. Function Synopsis

2025-01-10 15:47:30
enet.peer:ping interval
  • References/Game Development/LÖVE/love/Third-party modules/lua-enet

enet.peer:ping interval Specifies the interval in milliseconds that pings are sent to the other end of the connection (defaults to 500). Function

2025-01-10 15:47:30
enet.peer:index
  • References/Game Development/LÖVE/love/Third-party modules/lua-enet

enet.peer:index Returns the index of the peer. All

2025-01-10 15:47:30
enet.host:flush
  • References/Game Development/LÖVE/love/Third-party modules/lua-enet

enet.host:flush Sends any queued packets. This is only required to send packets earlier than the next call to

2025-01-10 15:47:30
enet.peer:last round trip time
  • References/Game Development/LÖVE/love/Third-party modules/lua-enet

enet.peer:last round trip time Returns or sets the round trip time of the previous round trip time computation. If value is nil the current value of the

2025-01-10 15:47:30
enet.host:broadcast
  • References/Game Development/LÖVE/love/Third-party modules/lua-enet

enet.host:broadcast Queues a packet to be sent to all connected

2025-01-10 15:47:30