在lua中创建TCP客户端时出错

时间:2013-08-13 09:09:38

标签: tcp lua luasocket

我正在尝试在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

从socket读取数据它阻止代码的总执行。

1 个答案:

答案 0 :(得分:1)

默认情况下,所有luasocket I / O操作都是阻塞的。您需要使用socket.settimeout(0)settimeout)来禁用阻止功能。然后,您可以检查作为状态返回的“超时”值并相应地采取相应措施。

根据数据的发送方式,this answer也可能相关。