boost :: asio服务器多进程
我想做一个简单的多进程(而不是线程)服务器。我已经看到了迭代示例,它一次处理一个请求。
相反,我需要同时处理更多请求(更多不超过10个)。
在经典的c和c ++示例中,我看到服务器的设计如下:
int listensd, connsd; // listening socket and conection socket
pid_t pid; //process id
listensd=socket(....);
bind(listensd,...);
listen(listensd,...);
for(;;)
{
connsd=accept(listensd,...);
if((pid=fork())==0) //child process
{
close(listensd); //close the listen socket
do_it(connsd); //serve the request
close(connsd); //close the connection socket
exit(0);
}
close(connsd); //the parent closes the connection socket
}
是否有可能通过提升来做类似的事情?我真的不知道如何获得两个不同的socket,因为在boost中所有的函数(listen
,bind
,accept
等)都返回void。
没有找到相关结果
已邀请:
1 个回复
揽芳僵迷仇
,
,ѭ3ma到相关Boost.Asio类型的映射,请参阅BSD Socket API Boost.Asio文档。 虽然,正如我在评论中所指出的那样,我觉得这种设计根本不适合。您最好学习异步设计模式并使用Boost.Asio库的真正优势。有关更多信息,请参阅C10K问题。