【发布时间】:2011-03-07 21:26:39
【问题描述】:
好的,我在this 问题中发现轮询套接字无法扩展,所以我决定研究异步套接字,我有几个问题。
- 如果我有数百个客户都试图向他们的合作伙伴发送数据,那么最好使用什么异步方法? select() poll() 还是我可以在非阻塞套接字上调用 recv() ?
- 当我轮询并发现有数据要读取时,我是否应该生成一个线程来处理它?
- 我应该担心任何睡眠功能,还是应该让程序占用 100% 的 CPU?
- 将整个功能放入一个类中是否有效?我真的很想做这样的事情:
//thread 1:
while(!quit){
manager.check_clients();
manager.handle_clients();
manager.display_clients();
}
//thread 2:
while(!quit)
manager.manage_admin_input();
【问题讨论】:
-
谢谢乔恩,出于某种原因,我把自己的冒号删掉了。
标签: c++ sockets select asynchronous