Lua套接字客户端

11

我正在尝试制作一个简单的lua socket客户端,用于Lua Socket页面上的Socket Server示例。

虽然服务器部分可行,但我已经使用telnet测试过了。

但是客户端部分无法工作。

local host, port = "127.0.0.1", 100
local socket = require("socket")
local tcp = assert(socket.tcp())

tcp:connect(host, port);
tcp:send("hello world");

它只需要连接,发送一些数据并接收返回的数据。

有人可以帮我修复吗?

1个回答

24

您的服务器很可能是按行接收的。如接收文档所述,这是默认的接收模式。请尝试在客户端消息中添加一个换行符。这将完成服务器上的接收:

local host, port = "127.0.0.1", 100
local socket = require("socket")
local tcp = assert(socket.tcp())

tcp:connect(host, port);
--note the newline below
tcp:send("hello world\n");

while true do
    local s, status, partial = tcp:receive()
    print(s or partial)
    if status == "closed" then break end
end
tcp:close()

或者,使用不同的“接收”模式,例如“local threebytes = tcp:receive(3)”。 - Phrogz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接