Lua-Love程序关闭设备不像我期望的那样
2016-8-17 13:39:2
收藏:0
阅读:140
评论:1
我有Lua love程序:
conf-nogui.lua(在conf.lua内被调用以不显示GUI):
function love.conf(t)
print("关闭GUI窗口")
t.window = nil
end
main.lua:
-- UDP服务器
local socket = require("socket")
require("utils")
require("globals")
--模块范围变量(或者我喜欢叫它们本地全局变量)
local udp
--启动
function love.load()
print("加载")
udp = socket.udp()
udp:setsockname("*",SERVER_PORT)
udp:settimeout(0)
print("加载完成")
end
--调度器
function love.update()
--检查Rx数据包
local rxDataPacket,ip,port = udp:receivefrom()
if rxDataPacket then
--将包打印成十六进制
printStringAsHex("Rx from ".. ip ..":".. port .." ",rxDataPacket)
--将字符串转换为数组进行编辑
local rxByteArray = stringToArray(rxDataPacket)
--编辑值
rxByteArray [5] = 0x66
--再次转换为字符串
local txDataPacket = arrayToString(rxByteArray)
--用结果回复
udp:sendto(txDataPacket,ip,port)
end
end
--关闭
function love.quit()
print("关闭连接...")
--完成客户机,关闭对象
udp:close()
print("关闭连接完成")
end
还有一些其他的文件被包括在内,但我不认为对这个问题是必要的。
我在命令行中像这样运行程序:love . --console我在正确的目录中,所以“。”是当前目录。
这个小程序正如预期的那样运行,直到我关闭它。它在Windows命令行上运行,所以我使用ctrl+c终止程序(它没有运行GUI-参见conf文件)。
当程序关闭时,这是我在命令提示符中看到的:
“AL lib:(EE)alc_cleanup:1个设备未关闭”
所以我不理解为什么我的“function love.quit()”没有被调用。我没有看到调试的“关闭连接...”。是因为ctrl+C过于“粗暴”地终止程序吗?-还有其他方法终止程序吗?
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

我认为
love.quit只有在触发quit事件(即love.event.quit())时才会被调用。当按下 Ctrl+C 时,cmd 会收到 SIGINT 信号,导致实例中运行的当前程序停止。
所以,我猜 LOVE 捕获了这个输入,而没有选择触发
quit事件,而是强制关闭了。查看这个问题以获取更多帮助。