socket非阻塞连接的有关问题

socket非阻塞连接的问题。
我的流程是,把socket设为非阻塞,然后connect。这里有个问题,如果server还没开始accept,那这个connect就没有作用了?难道要while(1){connect}吗?好像有其它方法?求教,socket新手。没分了。

补充一下问题:网上说的用select设置超时连接,流程是先用一次connect,然后select等待对方的send函数,但是如果第一次connect的时候,对方还没有开始accept,那就等于没有建立到连接,对方就不可能send了吧?有点矛盾。

------解决方案--------------------
用select 判断可写或者超时返回
如果SOCKET可以写了,那么说明连接完成
否则可以超时返回

------解决方案--------------------
还真的应该这样:
while(1){connect}

当然,你可以在每个循环加个sleep什么的,但始终还是这个架子。

另外,不要觉得一个死循环就不得了,windows的消息循环,也是个死循环。
关键是,你不能在ui界面上死循环,开个线程即可。

一个程序的运行,本来就是N多个的死循环,不要认为while(1)才是死循环,只要绕回来了,就是死循环,比如你从网络上读取数据,解析、储存,又开始读取数据,这就是个死循环了。

死循环都结束掉了,整个进程就退出了。