安装Lua套接字库

时间:2012-04-27 19:28:57

标签: sockets lua luasocket

要么我过度或失明。我想学习Lua的网络,因此我必须安装socket lib,所以我可以轻松地要求它,但我不知道,我应该“需要”哪些文件。例子说:

local socket = require("socket")

但正如我所说,我不知道应该包含哪些文件,如果我使用socket.lua它不起作用我得到:No files found

我从这里获得了lib:Lua socket download

或者,是否有另一种安装套接字库的方法?

2 个答案:

答案 0 :(得分:13)

当您使用require加载模块时,Lua使用包路径来确定在哪里查找模块。请查看Lua手册的Modules部分。具体而言,package.pathpackage.cpath部分。

  

package.path:require用于搜索Lua加载程序(.lua模块)的路径   package.cpath:require用于搜索C加载程序的路径(.so / .dll模块)

您可以查看当前路径:

print(package.path..'\n'..package.cpath)

如果您将LuaSocket安装到当前包路径中的某个位置,Lua应该能够找到并加载它。

或者,您可以在调用require之前修改包路径。例如,如果为项目创建文件夹并将LuaSocket库解压缩到项目文件夹中名为libs的子文件夹中:

Project
|
> libs
     |
     > lua
         |
         > socket         
     > socket
     > mime

您可以在require套接字库之前设置相对于项目的包路径(在Linux上用/?.dll替换/?.so):

package.path = package.path..';./libs/lua/?.lua'
package.cpath = package.cpath..';./libs/socket/?.dll;./libs/mime/?.dll'
local socket = require 'socket'

答案 1 :(得分:0)

在linux系统上使用此命令:

#luarocks install luasocket

使用下一个命令查看路径CONFIGURATION

#luarocks 

您需要使用默认的Linux帐户(请参阅:CONFIGURATION):

$lua 
> socket = require ("socket")

或使用此:

> socket = require 'socket'