1、select每次使用完都需要将fdset重新zero一把,因为select会对fdset进行改变,其结果已经不可预料
2、要准备两个fdset,一个是用来管理新连接进入或者连接断开;另一个fdset在每次select前将前一个fdset memcpy一把
3、select的检测大于0后,表明fdset中有需要处理的fd,此时需要便利set中的所有fd,用IS_SET来判断是否真的可以写或者读。特别值得注意,每次select完,只能对同一个fd进行一次send或recv操作,否则会被阻塞。