///當我們以非阻塞的方式來進行連接的時候,返回的結果如果是 -1,這並不代表這次連接發生了錯誤,如果它的返回結果是 EINPROGRESS,
///那麼就代表連接還在進行中, 後面可以通過poll或者select來判斷socket是否可寫,如果可以寫,說明連接完成了
ret = connect(fd, (struct sockaddr*)&addr, sizeof(addr));
if(ret < 0 && errno != EINPROGRESS)
{
return ret;
}