///当我们以非阻塞的方式来进行连接的时候,返回的结果如果是 -1,这并不代表这次连接发生了错误,如果它的返回结果是 EINPROGRESS,
///那么就代表连接还在进行中, 后面可以通过poll或者select来判断socket是否可写,如果可以写,说明连接完成了
ret = connect(fd, (struct sockaddr*)&addr, sizeof(addr));
if(ret < 0 && errno != EINPROGRESS)
{
return ret;
}