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
local enet = 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
local enet = 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

関連

そのほかの言語