Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 向TCP服务器中的处理程序功能光纤发送消息_Sockets_Tcp_Lua_Tarantool - Fatal编程技术网

Sockets 向TCP服务器中的处理程序功能光纤发送消息

Sockets 向TCP服务器中的处理程序功能光纤发送消息,sockets,tcp,lua,tarantool,Sockets,Tcp,Lua,Tarantool,如果从socket模块传递给tcp\u server()的处理程序函数以光纤运行,是否有可能通过光纤通道与每个tcp\u连接进行通信?是的 #/usr/bin/tarantool 本地光纤=需要(‘光纤’) 本地套接字=需要('套接字') 本地客户端={} 功能rc_手柄(s) --您可以将套接字引用保存在某些表中 客户机=true --您可以创建一个频道 --我建议将其连接到插座 --所以收集垃圾会更容易 s、 通道=光纤。通道() --您还可以获得处理光纤的参考。 --这将帮助你区分活着的客

如果从
socket
模块传递给
tcp\u server()
的处理程序函数以光纤运行,是否有可能通过
光纤通道与每个tcp\u连接进行通信?

是的

#/usr/bin/tarantool
本地光纤=需要(‘光纤’)
本地套接字=需要('套接字')
本地客户端={}
功能rc_手柄(s)
--您可以将套接字引用保存在某些表中
客户机=true
--您可以创建一个频道
--我建议将其连接到插座
--所以收集垃圾会更容易
s、 通道=光纤。通道()
--您还可以获得处理光纤的参考。
--这将帮助你区分活着的客户和死去的客户
s、 fiber=fiber.self()
s:write(string.format('用于%s的消息:%s:%s',
s:peer().host,s:peer().port,s.channel:get())
))
--如果客户端是手动完成的,不要忘记取消刷新
--或者您可以将客户表设置为弱表。
客户机=nil
结束
服务器=socket.tcp_服务器('127.0.0.1',3003{
名称='srv',
handler=rc\u句柄,
})
功能问候语(msg)
--所以你可以向所有的客户广播你的信息
对于s,成对(客户端)执行
s、 频道:put(msg)
结束
结束
require('console')。start()
当然,这个片段还远远不够完美,但我希望它能帮助您完成工作