这个问题以前没注意过,都是先connect后再设置成非阻塞的。但是最近碰到一个问题,需要连多个server,如果有一个server关机了,这时候connect就会非常慢,影响整个程序。查了一下,原来connect的时候就可以设置成非阻塞的。步骤貌似也很简单,我的理解就是先设置非阻塞然后调用connect,这时候connect是立即返回的,接下来就需要调用
select来查看是否连上了,比较方便的就是select可以自己设置超时时间,当select发现socket可读写了,就认为是连接成功了,超时的话还是按照原来connect失败处理就行了。