有什么方法可以将unix套接字上的open()调用映射到socket()和connect()调用?

时间:2016-05-02 04:03:29

标签: linux sockets

我想知道是否有办法让某人可以通过简单地在文件上调用open()并写入它来写入我的UNIX套接字?现在,他们必须做以下事情:

// Create socket.

fd = socket(AF_UNIX, SOCK_STREAM, 0);
if (fd == -1)
    {
    result = -1;
    goto done;
    }

// Set socket name.

memset(&addr, 0, sizeof(addr));
addr.sun_family = AF_UNIX;
strncpy(addr.sun_path, socket_name, sizeof(addr.sun_path) - 1);

// Connect.

result = connect(fd, (struct sockaddr*) &addr, sizeof(addr));
if (result == -1)
    {

    // If some error then we're done.                                       
    }

// Write buffer.

result = write(fd, buffer, length);
if (result == -1)
    goto done;

close(fd);

我希望可能有一些机制可以将套接字文件视为普通文件并让用户只调用open(),write()和close()。有这样的机制吗?

谢谢, 尼克

1 个答案:

答案 0 :(得分:0)

从技术上讲,使用FUSE可以做到这一点,但您最好使用socat甚至是更具体的解决方案。