lua-socket:Unix域套接字?

用户名

我正在使用lua-socket 3.0rc1.3(Ubuntu Trusty随附)和lua 5.1。我正在尝试在Unix域套接字上进行侦听,而我能找到的唯一示例代码是这个

-- send stdin through unix socket
socket = require"socket"
socket.unix = require"socket.unix"
c = assert(socket.unix())
assert(c:connect("/tmp/foo"))
while 1 do
    local l = io.read()
    assert(c:send(l .. "\n"))
end

问题是,当我尝试connect()得到“没有这样的文件或目录”时,如何首先创建该套接字?mkfifo /tmp/foo有人向我推荐的那个错误代替了我一个“连接被拒绝”的错误(我不认为fifo和域套接字是一回事吗?)。

有没有在unix域套接字上使用luasocket的最小工作示例?

编辑:从保罗的解决方案,这是一个MWE,如果有人感兴趣

libsocket = require "socket"
libunix = require "socket.unix"
socket = assert(libunix())
SOCKET="/tmp/socket"
assert(socket:bind(SOCKET))
assert(socket:listen())
conn = assert(socket:accept())
while 1 do
    data=assert(conn:receive())
    print("Got line: " .. data)
    conn:send("echo: " .. data .. "\n")
    if data == "." then conn:close() return end
end
保罗·库尔琴科(Paul Kulchenko)

据我了解,您无法使用mkfifo(或任何命令)创建该套接字,因为它将由(侦听)服务器创建。在您引用的同一页上列出了一个示例,但是可能很难找到:

sock, err = s:listen([backlog|_32_])
sock, err = s:bind(path)
client_conection, err = s:accept()

基本上,创建服务器的方式与为TCP创建服务器的方式相同,只是绑定到路径,然后开始接受其上的新连接,而不是绑定到地址/端口。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

lua-socket:Unix域套接字?

来自分类Dev

lua套接字POST

来自分类Dev

如何要求 Lua 套接字?

来自分类Dev

Java到Lua套接字通信错误

来自分类Dev

连接中的Lua套接字错误

来自分类Dev

安装lua套接字库

来自分类Dev

UNIX域套接字编程3个套接字

来自分类Dev

Node Express Unix域套接字权限

来自分类Dev

Warp:绑定到Unix域套接字

来自分类Dev

Unix域套接字的边缘触发epoll

来自分类Dev

如何“跟踪” Unix域套接字?

来自分类Dev

使用Unix域套接字控制VLC

来自分类Dev

IPC Unix域套接字bash

来自分类Dev

UNIX域套接字是否溢出?

来自分类Dev

带有VM的Unix域套接字

来自分类Dev

对不同主机使用Unix域套接字

来自分类Dev

Unix域套接字的边缘触发epoll

来自分类Dev

使用Unix域套接字显示网页

来自分类Dev

如何创建Unix域套接字?

来自分类Dev

非root用户的Unix域套接字

来自分类Dev

LUA通过TCP套接字发送十六进制变量

来自分类Dev

Lua套接字客户端:发送功能

来自分类Dev

在body_filter_by_lua上的openresty发送套接字

来自分类Dev

NodeMCU Lua中的套接字连接用作片段,而不是init.lua中的片段

来自分类Dev

转到net / http unix域套接字连接

来自分类Dev

OpenOffice管道(unix域套接字)不是/ tmp吗?

来自分类Dev

带有unix域套接字的IPC安全吗?

来自分类Dev

如何从命令行访问Unix域套接字?

来自分类Dev

简单的Unix域套接字服务器