按照有关创建 a combined TCP/UDP asynchronous server 的教程进行操作后,我正在进一步研究应用 Boost ASIO 来直接从字节流中解析数据。
我的目标是提供一些独立于套接字的机制。在我的场景中,我正在处理来自 Java 实现的文件描述符。在 Java 中,我可以使用以下方法读取文件描述符:
is = new FileInputStream(fd);
os = new FileOutputStream(fd);
是否可以用某种输入和输出字节流替换套接字并让 ASIO 负责处理 TCP 连接?
想到的是使用 socket.h 中的 connect
;类似于:
connect((int) fd, (struct sockaddr *) &peerAddr, sizeof(peerAddr))
这当然会建立一个连接并期望一个对等点 sockaddr_in
连接到。我希望可能有一些类似的方法将 boost::asio::ip::tcp::socket
绑定(bind)到文件描述符。这种性质的东西可能吗?
最佳答案
将评论移至答案,是的,boost asio 具有这样的功能,称为 Socket IOStreams,请参见此处:http://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio/overview/networking/iostreams.html
关于c++ - 使用Boost ASIO处理无套接字的TCP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20967357/