Lua,如何从unix文件套接字

时间:2016-09-09 23:36:22

标签: sockets unix lua unix-socket luasocket

我真的很难连接和读取现有的unix文件套接字。

套接字存在,是Mode + rwx,应该返回一个json oneliner(不带换行符)。

(我没有问题阅读基于debian的系统上的套接字,如ncat -U /run/fastd.supernode.sock

虽然我尝试在嵌入式设备上解决它TP-Link841v11-ND Mips(来自TP Link的OpenWRT / LEDE路由器上的Fastd Socket)主要只有lua(和luasocket)可用。 我到目前为止

$ lua
> socket = require"socket"
> socket.unix = require"socket.unix"
> getme = socket.unix("/var/run/fastd.mesh_vpn.socket")
> print(getme:receive())
stdin:1: calling 'receive' on bad self (unix{client} expected, got userdata)
stack traceback:
    [C]: in function 'receive'
    stdin:1: in main chunk
    [C]: ?

解决方案,针对有类似问题的人

(如此处所述https://forum.freifunk.net/t/connect-fastd-socket-on-tp841v11-fastd-statistiken/13499

(每次想要阅读套接字时都需要重新连接)

$ lua
> require "socket"
> require "socket.unix"
> c = socket.unix()
> c:connect("/var/run/fastd.mesh_vpn.socket")
> print(c:receive())

1 个答案:

答案 0 :(得分:0)

你缺少几个命令;有关详细信息,请参阅this SO answerthis maillist discussion中的完整示例。