我正在尝试在 lua 中创建 TCP 客户端
local host, port = HOST, PORT
local socket = require("socket")
client = socket.tcp();
client:connect(host, port);
client:send("Hello User");
这工作正常但是当我添加
while true do
local s, status, partial = client:receive()
print(s or partial)
if status == "closed" then break end
end
要从套接字读取数据,它会阻止代码的全部执行。
最佳答案
默认情况下,所有 luasocket I/O 操作都是阻塞的。您需要使用 socket.settimeout(0)
( settimeout ) 来禁用阻塞。然后,您可以检查作为状态返回的“超时”值并采取相应措施。
根据数据的发送方式,this answer也可能相关。
关于tcp - lua创建TCP客户端报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18204988/