將套接字文件描述符設(shè)置成非阻塞之后颇玷,對于CONNECT的判定問題。
用fcntl將套接字設(shè)置為非阻塞。
connect的返回:要么返回文件描述符企垦,要么ERRNO是EINPROGRESS。
這時候connect是有可能失敗的晒来,如何判斷钞诡?
結(jié)論:無論如何,去I/O復用探查套接字的可寫狀態(tài),都會返回可寫荧降,要做的是:用getsockopt去取SOL_SOCKET層上的SO_ERROR選項接箫,這個選項就是connect的狀態(tài)。
將套接字文件描述符設(shè)置成非阻塞之后颇玷,對于CONNECT的判定問題。
用fcntl將套接字設(shè)置為非阻塞。
connect的返回:要么返回文件描述符企垦,要么ERRNO是EINPROGRESS。
這時候connect是有可能失敗的晒来,如何判斷钞诡?
結(jié)論:無論如何,去I/O復用探查套接字的可寫狀態(tài),都會返回可寫荧降,要做的是:用getsockopt去取SOL_SOCKET層上的SO_ERROR選項接箫,這個選項就是connect的狀態(tài)。