【发布时间】:2016-12-24 05:01:57
【问题描述】:
我有lua爱程序:
conf-nogui.lua(在 conf.lua 中调用以不显示 GUI):
function love.conf(t)
print("Switch GUI window off")
t.window = nil
end
main.lua:
-- UDP Server
local socket = require("socket")
require("utils")
require("globals")
-- Module Scoped Variables (or as I like to call them local-globals)
local udp
-- Startup
function love.load()
print("load")
udp = socket.udp()
udp:setsockname("*", SERVER_PORT)
udp:settimeout(0)
print("load done")
end
-- Scheduler
function love.update()
-- Check for Rx packets
local rxDataPacket, ip, port = udp:receivefrom()
if rxDataPacket then
-- print the packet as hex
printStringAsHex("Rx from " .. ip .. ":" .. port .. " ", rxDataPacket)
-- Turn string into an array for editing
local rxByteArray = stringToArray(rxDataPacket)
-- Edit values
rxByteArray[5] = 0x66
-- Turn back into string
local txDataPacket = arrayToString(rxByteArray)
-- Reply with the result
udp:sendto(txDataPacket, ip, port)
end
end
-- shutdown
function love.quit()
print("Closing connection...")
-- done with client, close the object
udp:close()
print("connection close done")
end
还有一些其他文件,但我认为这个问题没有必要。
我像这样在命令行上运行程序:love . --console我在正确的目录中,所以“。”是当前目录。
这个小程序完全按照预期运行,直到我关闭它。它在 windows 命令行上运行,所以我使用 ctrl+c 来终止程序(它没有运行 GUI - 请参阅 conf 文件)。
当程序关闭时,这是我在命令提示符中看到的:
AL lib: (EE) alc_cleanup: 1 device not closed
所以我不明白为什么我的function love.quit() 没有被调用。我没有看到我的调试Closing connection...。是因为 ctrl+C 终止程序过于“苛刻”吗? - 还有其他方法可以终止程序吗?
【问题讨论】:
标签: lua love2d termination