lua-enet (日本語)

LÖVE 0.9.0 から使用可能
このモジュールは以前のバージョンでは非対応です。


O.png こちらから lua-enet 用の公式説明書を利用可能です。ENet の特徴はホームページにて一覧化されています。公式説明書には誤りがある場合があります。この Wiki にある説明書は LÖVE の実装を反映しているものであり、ここで記載されているものは安全のために従うべきであるといった意味です。  

lua-enet は ENet 用の部分的で単純な Lua バインディングです。

ENet の目的は UDP (User Datagram Protocol) の上位に ゲーム用途の比較的薄くて、単純かつ頑丈なネットワーク通信層を提供することです。主な特徴は信頼性のある選択肢、パケットの順序による配達です。

ライブラリの柔軟性、可搬性、容易な組み込み性を維持するために認証、ロビーイング、サーバー発見、暗号化、またはその他の特定アプリケーション用途と類似したタスクといたENet における特定の高度なネットワーク機能を省略しています。

解説
host ENet ホストはピアとの通信をします。
peer ENet のピアにてデータ・パケットの送信または受信を行います。
event イベントに関する情報を内包する単純なテーブル。

関数

関数 解説
host_create 新規ホストを返します。
linked_version 搭載されている ENet のバージョンを文字列として返します。

用例

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

関連

そのほかの言語