安装Lua套接字库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安装Lua套接字库相关的知识,希望对你有一定的参考价值。

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

local socket = require("socket")

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

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

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

答案

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

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

您可以检查当前路径是什么:

print(package.path..'
'..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'
另一答案

在你的linux系统上使用这个命令:

#luarocks install luasocket

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

#luarocks 

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

$lua 
> socket = require ("socket")

或使用此:

> socket = require 'socket'

以上是关于安装Lua套接字库的主要内容,如果未能解决你的问题,请参考以下文章

在套接字库中调用 recv 时,我的 recv 缓冲区应该有多大

Python:使用套接字库创建的 IRC 机器人返回错误“错误文件描述符”

Python 套接字库认为套接字在未打开时已打开

在 C++ 中测试套接字库的线程应用程序示例

请求 - 带有异步 .Net 套接字库的响应模式

win 10 UAP/UWP(通用应用程序)的异步套接字库?