使用带有Boost ASIO的UDP的文件套接字I / O.

时间:2012-10-17 01:58:10

标签: c++ boost udp boost-asio

所以我试图在我的FreeBSD服务器上使用带有syslog接收器的boost.log,它运行rsyslogd并在文件套接字上侦听UDP数据。显然这适用于FreeBSD的土地。实际上文件套接字是一个dgram套接字(telnet到文件套接字是另一个在FreeBSD中工作的东西):

$ telnet /var/run/log
Trying /var/run/log...
/var/run/log: Protocol wrong type for socket

无论如何,boost.log不会与文件套接字通信,只能使用IP地址。我的计划是在我的应用程序中继到文件套接字的常规基于IP的UDP服务器之间代理信息。从理论上讲,这应该可以正常工作。

但是,我找不到任何方法让ASIO通过UDP与文件套接字甚至文件套接字进行通信。我知道可能有使用ASIO处理文件I / O的方法,但这似乎是一个艰难的谷歌搜索 - 没有任何相关性。只有少数东西(在这个网站上)最多只需要处理Windows文件I / O和ASIO。

理想情况下,我会寻找这样的东西(尽管根本不存在):

socket.send_to(boost::asio::buffer(data, length),
               boost::asio::ip::udp::endpoint(boost::asio::ip::file_address("/var/run/log"), port);

但我会采取任何可行的方法。

1 个答案:

答案 0 :(得分:4)

相关问题