借助libuv强大的功能很容易实现lua相关的功能
c 端代码很简单,使用上一篇的也可以
lua端
local uv = require('luv')
local function create_server(host, port, on_connection)
local server = uv.new_tcp()
server:bind(host, port)
server:listen(128, function(err)
-- Make sure there was no problem setting up listen
assert(not err, err)
print("accept one");
-- Accept the client
local client = uv.new_tcp()
server:accept(client)
on_connection(client)
end)
return server
end
local server = create_server("0.0.0.0", 0, function (client)
client:read_start(function (err, chunk)
-- Crash on errors
assert(not err, err)
if chunk then
-- Echo anything heard
client:write(chunk)
else
-- When the stream ends, close the socket
client:close()
end
end)
end)
print("TCP Echo serverr listening on port " .. server:getsockname().port)
uv.run()
测试,使用telnet测试
命令行输入 telnet 127.0.0.1 端口
随机输入内容,自动回显内容,借助libuv强大的功能很容易实现lua相关的功能
结束telnet 功能为 按下 ctrl + ] 退出链接返回 telnet , 输入quit退到命令行。