使用套接字流和boost :: asio :: io_service来增强IPC

时间:2015-04-13 19:57:34

标签: c++ multithreading sockets boost ipc

我遇到了IPC问题,我需要使用boost::asio::io_service这样做。 想法是在2个线程之间打开管道连接,其中线程#1通知线程#2,线程#2使用boost::asio::io_service并在线程#1发送消息时唤醒。

我看到使用connect_pair绑定2个流套接字的示例,因此在另一端可以读写到一端。我会将其称为readfdwritefd

我想将writefd分配给线程#1,将readfd分配给线程#2。然后线程#2应运行io_service并等待事件。

写入writefd应该调用此事件,这将导致线程2被唤醒。

但到目前为止我无法想象如何去做。

这是我想要做的主要想法:

 boost::asio::io_service io;
 boost::asio::local::stream_protocol::socket readfd (io);
 boost::asio::local::stream_protocol::socket writefd (io);
 boost::asio::local::connect_pair( readfd, writefd );

 //allocate writefd to thread 1
 ....

 //wait for read event - << how to do it? 

 io.run()

我以为我可能会用:

boost::asio::local::stream_protocol::acceptor
//or 
//open and bind but i could not understand how to do so 

0 个答案:

没有答案