对于asio使用的几个不明白的地方???
最近在研究boost::asio
有几个问题先问下大家:
1. 如果要做成一个线程收消息,一个线程发消息,一个线程处理逻辑,那么是否需要创建三个io_server去分别作这三件事,还是说asio本身就是多线程收发消息,只要在创建一个io_server去处理逻辑即可?
2.多线程多个io_server和多线程单个sio_server,然后用srand在处理线程安全,这两种方式哪跟合适?
3. 看到一篇文章,里面说创建一个map对象,在接受到新socket的时候把它insert到map中,close socket的时候在把它从map中删除,但这map中的sockets不做任何逻辑,只是add和delete,不理解这么做法的目的是什么?
4. 当出现read error的时候,要close socket,是直接socket.close(),还是说把close放在srand中,前提是采用了多线程多个io_server?
谢谢大家,请帮助我!