关于luasocket的编译和部署

  • lua语言是一门轻量级、可扩展、使用方便的脚本语言,近年来在很多领域得到了广泛的使用,特别是在游戏领域,很多服务器和客户端引擎都选择使用lua来做扩展。同时lua自出生以来受到很多开发者的青睐,并为之开发了很多扩展库,例如lfs、luasql、redis-lua、luasocket、luajson等都得到了广泛的使用。

  • 其中luasocket主要是提供网络方面的扩展,提供了包括tcp、udp、http、ftp、smtp等协议的支持,并且支持跨平台。使用它能够很容易的在lua进行网络程序的开发,本文主要讲解一下如何编译和部署luasocket。

  • 首先,我们需要下载源码。

    • 下载地址:http://files.luaforge.net/releases/luasocket/luasocket

      如果是windows,可以直接下载luasocket-2.0-beta2-win32,里面有编译好的dll文件,使用了是lua5.1。但是如果需要使用luajit,那么则需要下载源码编译。下载luasocket-2.0.2则是源码。

  • 编译luasocket的源码。
    • winddows:解压后里面有vs的工程,打开sln文件,修改一下lua的头文件路径和lib路径,然后可以直接编译。产生socket.dll和mime.dll。
    • linux:

      1、wget http://pkgs.fedoraproject.org/repo/pkgs/lua-socket/luasocket-2.0.2.tar.gz

      2、tar -zxvf ./luasocket-2.0.2.tar.gz

      3、cd luasocket-2.0.2

      4、修改config文件,添加lua的头文件路径。LUAINC=-Ilua-5.1.1/src

      5、make,会在src目录产生socket.so和mime.so。

  • 部署luasocket,部署其实比较简单,这里说一下如何扩展
    • 首先,需要有lua的运行环境,就是需要能够运行lua。
    • 其次,库文件的存放有规则,soket.dll(so)需要放在宿主程序目录下socket的目录中,并改名为core.dll(so),mime.dll(so)需要放在宿主程序目录下mime的目录中,并改名为core.dll(so)。(注:之所以需要这样,是因为在socket.lua里面加载c库使用了require(socket.core),利用了lua加载库的一个特性,lua加载完库后会检查库里面是否存在luaopen_xxx_xx的入口函数,其中的xx就是路径的名字,比如socket.dll里面的入口函数就是luaopen_socket_core,所以这样加载会默认调用入口函数,后面我会再介绍一下如何手动加载入口函数。)。
    • 再次,将源码包内的lua文件放到自己的脚本目录,并按存放路径require,然后在使用的地方require(module name)或者使用module name调用接口。示例代码如下:
--加载luasocket,这里按照实际路径包含。
require "script.socket.socket"
require "script.socket.ltn12"
require "script.socket.mime"
--调用接口,使用包名(module name)
local socket = require("socket")
socket.connect(...)
  • 介绍一下手动加载入口函数的方法,就是使用用lualib的方式,用代码来加载,示例代码如下:
--入口初始化函数
function luasocket_init()
    --第一个参数是dll或者so库文件名,第二个参数是入口函数名称
    local open_function, code = package.loadlib("socket", "luaopen_socket_core")
    if open_function then
        return open_function()
    end
    error("luasocket init failed because:%s", code)
end
--调用入口函数
local socket = luasocket_init()


好了,luasocket的编译和部署就讲完了,做完上面这些步骤,就可以用luasocket来编写网络程序了。



首次使用MarkDown编辑器写博客,总体说来效果还可以,比以前的方式要好很多,不过和wiki的语法比起来,还是感觉比较繁琐,最不习惯的就是没有缩进支持,也可能是我没找到,编辑起来怪怪的,希望csdn能够改进吧。

时间: 2024-08-03 21:45:47

关于luasocket的编译和部署的相关文章

Spark编译与部署

Spark入门实战系列--2.Spark编译与部署(上)--基础环境搭建 [注] 1.该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取: 2.Spark编译与部署将以CentOS 64位操作系统为基础,主要是考虑到实际应用一般使用64位操作系统,内容分为三部分:基础环境搭建.Hadoop编译安装和Spark编译安装,该环境作为后续实验基础: 3.文章演示了Hadoop.Spark的编译过程,同时附属资源提供了编译好的安装包,觉得编译费时间可以直接使用这些

用批处理来自动化项目编译及部署(附Demo)

阅读目录 介绍 详细 处理 结论 Demo下载 介绍 一个项目从立项开始,可能就已经根据公司的配置模板将目录,文档结构定义出来.有动态库,也有静态库,在没有专门的CMO的时候,往往组长,若干开发人员承担版本发布的工作.次工作即枯燥,又容易出错,那么怎么样才能将这样的工作略微自动化点.以下就通过很简单的很古老的批处理来略微自动化下. 详细 一:目录结构 每个公司的目录结构不一样,当略有相同,比如:管理库,需求库,设计库,代码库,引用库(包库),资源库,编译模板库,编译版本库,发布版本库等.如下图:

Spark入门实战系列--2.Spark编译与部署(下)--Spark编译安装

[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.编译Spark Spark可以通过SBT和Maven两种方式进行编译,再通过make-distribution.sh脚本生成部署包.SBT编译需要安装git工具,而Maven安装则需要maven工具,两种方式均需要在联网下进行,通过比较发现SBT编译速度较慢(原因有可能是1.时间不一样,SBT是白天编译,Maven是深夜进行的,获取依赖包速度不同 2.maven下载大文件是多线程进行,而SBT是

设置VS编译或部署时遇到错误提示是否继续运行

默认情况下,vs2010按F5进行编译,如果编译时发现有错误,vs会提示是否继续运行. 如果手贱不小心点了继续运行且不再提示,结果现在就算编译出错也不提示. 会照成整个项目编译完成后才提示错误信息非常浪费时间!下面是给手残党的配置图! 设置VS编译或部署时遇到错误提示是否继续运行

Spark入门实战系列--2.Spark编译与部署(中)--Hadoop编译安装

[注]该系列文章以及使用到安装包/測试数据 能够在<[倾情大奉送–Spark入门实战系列] (http://blog.csdn.net/yirenboy/article/details/47291765)>获取 1 编译Hadooop 1.1 搭建好开发环境 1.1.1 安装并设置maven 1.下载maven安装包.建议安装3.0以上版本号,本次安装选择的是maven3.0.5的二进制包,下载地址例如以下 http://mirror.bit.edu.cn/apache/maven/maven

Spark入门实战系列--2.Spark编译与部署(上)--基础环境搭建

[注] 1.该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取: 2.Spark编译与部署将以CentOS 64位操作系统为基础,主要是考虑到实际应用一般使用64位操作系统,内容分为三部分:基础环境搭建.Hadoop编译安装和Spark编译安装,该环境作为后续实验基础: 3.文章演示了Hadoop.Spark的编译过程,同时附属资源提供了编译好的安装包,觉得编译费时间可以直接使用这些编译好的安装包进行部署. 1.运行环境说明 1.1 硬软件环境 l  主机

[iOS越狱开发]使用iOSOpenDev开发、编译、部署

个人原创,转帖请注明来源:cnblogs.com/jailbreaker 这篇blog讲解如何创建一个越狱程序,并编译和部署,使用的是iOSOpenDev,不涉及具体代码. 这里我选择Notification模版.可以选任何一个,其中有些需要做相应更改. 项目建立之后,我们主要看一下TARGETS中的User-Defined 目前看到的是默认的设置,注意下高亮的地方,iOSOpenDevDevice,这里是设置你需要部署的越狱设备的ip地址,注意下你xcode使用的sdk和设备的必须系统保持一直

Qt 5.9.3 如何静态编译和部署?

Qt 5.9.3 如何静态编译和部署? MSVC2015 x86 静态编译 Qt 部署静态库 VS2015 部署静态库 1. MSVC2015 x86 静态编译 1.1 Qt 官网下载最新源代码 立即下载 1.2 参考 Qt 官网提供的教程 Qt for Windows - Building from Source Qt Configure Options Qt for Windows - Requirements 参考上面文档后,发现需要安装以下依赖: ActivePerl Python 成功

编译LNMP部署动态网站环境

title: 编译LNMP部署动态网站环境 date: 2018-11-08 13:59:59 tags: Linux 服务配置 categories: Linux 服务配置 copyright: true --- LNMP动态网站部署架构是由一套 Linux+Nginx+MySQL+PHP 组成的动态网站系统解决方案. 以下配置环境为:Linux=RHEL7 --> Nginx=1.13 --> MySQL=5.6 --> PHP=7.0 无错误版. 安装编译环境 在使用源码包安装服务