请问:最快最有效的 connect() 方法

请教:最快最有效的 connect() 方法。
我尝试了
1.   set   socket   non-blocking,
      connect()
      select()
2.   event   =   WSACreateEvent()
      WSAEventSelect(sock,   event)
      ...
      WaitForSingleObject()

第一种效率没有第二种高,但是安全。
第二种好象有时候有错误的返回,   因为我在连接之后调用   wsasend(),   有时成功,有时竟然返回   10057!!--何解?

谁能告诉我又快又安全的方法,谢谢了!

------解决方案--------------------
用第一中,系统的负担比较小
------解决方案--------------------
你的第2种方法不是标准的方法吧。这样
event = WSACreateEvent()
WSAEventSelect(sock, event)

index = WSAWaitForMutipleEvents(...);
我想既然用WSACreateEvent创建对象,就应该用WSAWaitForMutipleEvents来判断对象是否被激活
然后调用WSAEnumNetworkEvents察看具体事件

------解决方案--------------------
关于最快的connect函数。
我认为没有最快的connect函数,connect函数内部是 tcp3路握手的建立,而tcp3路握手的时间长短是由底层tcp/ip协议栈来决定的。
我觉得一个block 的connect和一个non block的connect在连接成功的情况下时间基本上是相同的,当然non block可以connect设置超时。

我想你是不是想问,短时间内建立很多个socket 并且connect?

可以用 阻塞connect+多线程
非阻塞connect+select+单线程|多线程


单独比较 non-blocking connect和WSAEventSelect是不是没有太大的意义?