|
|

楼主 |
发表于 2006-10-18 13:40:30
|
显示全部楼层
大家可能误解我的意思了。我把流程给出来
select() //等待请求
recv //接收请求
send //回发处理结果
recv //等待请求方的ACK,以表示收到结果。
我的问题就在于第二个recv,第一个recv可以用select来挂起等待,而第二个recv则会阻塞,即使此时再用一个select在第2个recv处,如果发送方出现异常,那么程序也会挂在第二个select处,这样如果新连接的请求到来,那么是不可能触发第一个select的。
因为使用UDP,所以ACK是程序必须考虑的,所以我产生如此疑问,通用一点来说,即是,如果程序的一个分支中出现多个阻塞函数(如recv,recvfrom,read等等),那么如何应用select来实现并发的多连接。 |
|